#include <stdio.h> void main(void) { int a[10]={0},p[10]={0}; int i,n,m,j=0; int k1,k2; for(i=10;i<30;i++) {k1=i*i*i; k2=i*i*i*i; if((i*i*i)>999&&(i*i*i)<10000&&(i*i*i*i)>99999&&(i*i*i*i)<1000000) { a[j]=i; p[0]=k1/1000; p[1]=(k1%1000)/100; p[2]=(k1%100)/10; p[3]=k1%10; p[4]=k2/100000; p[5]=(k2%100000)/10000; p[6]=(k2%10000)/1000; p[7]=(k2%1000)/100; p[8]=(k2%100)/10; p[9]=k2%10; for(n=0;n<10;n++) for(m=n+1;m<10;m++) {if(p[n]==p[m]) a[j]=0;
} j++;
} } for(n=0;n<10;n++) if(a[n]!=0) printf("%d ",a[n]);
} 這是小弟做的,但是可能太繁瑣咯 不過沒辦法,由於時間太急啦 我還要做作業。
[此贴子已经被作者于2005-3-23 0:36:38编辑过]
请问各位大侠,我这样写为何行不通呢! #include<stdio.h> #include<math.h> main() { int x,t,i,j,sum; int x1; long x2; int a[10]; for(x=17;x<25;x++) { x1=pow(x,3); x2=pow(x,4);
if(x1>=1000&&x1<=9999&&x2>=100000&&x2<=999999) { a[0]=x1/1000; a[1]=x1/100%10; a[2]=x1/10%10; a[3]=x1%10; a[4]=x2/100000; a[5]=x2/10000%10; a[6]=x2/1000%10; a[7]=x2/100%10; a[8]=x2/10%10; a[9]=x2%10; } for(i=0;i<10;i++) for(j=i+i;j<10;j++) if(a[i]==a[j]) //也许关键是在这些地方出错了吧,请大伙帮忙,谢谢! break; printf("This number is %d\n",x); } getch(); }