|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
发现运行不出结果
- #include <stdio.h>
- int narcissistic( int number );
- void PrintN( int m, int n );
- int main()
- {
- int m, n;
- scanf("%d %d", &m, &n);
- if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
- PrintN(m, n);
- if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
- return 0;
- }
- int narcissistic( int number ){
- int x,num;
- int count1=0,count2=1;
- int sum=0;
- num=number;
- while(num>0){
- count1+=1;
- num/=10;
- }
- do{
- x=number%10;
- for(count2;count2<count1;count2+=1){
- x*=x;
- }
- sum+=x;
- number/=10;
- }while(number>0);
-
- if(sum==number) {
- return 1;
- }
- else{
- return 0;
- }
- }
- void PrintN( int m, int n ){
- m+=1;
- for(m;m<=n;m+=1){
- if(narcissistic(m)==1){
- printf("%d\n",m);
- }
- }
- }
复制代码
输入样例:153 400
输出样例:
153 is a narcissistic number
370
371
附上以前做过的代码
- int narcissistic( int number )
- {
- int i,t,p,c=0,n,sum=0;
- p=number;
- n = number;
- while(n)
- {
- c++;
- n/=10;
- }
- for(i=1;;i++)
- {
- t=p%10;
- p=p/10;
- sum+=pow(t,c);
- if(t==0&&p==0)break;
- }
- if(number==sum)return 1;
- else return 0;
- }
- void PrintN( int m, int n )
- {
- int i;
- m++;
- for(i=m;i<n;i++)
- if(narcissistic(i))printf("%d\n",i);
- }
复制代码
|
|