|
1楼 我编的这个是不是太罗嗦了? 大家看看好么?指点一下 main() {int shu,bai,shi,ge,ping; shu=100; while(shu<=999) {bai=shu/100; shi=(shu-bai*100)/10; ge=shu-bai*100-shi*10; ping=bai*bai*bai+shi*shi*shi+ge*ge*ge; if(shu==ping) printf("%d\n",shu); shu=shu++; } } 还有啊,平时看的一些练习题 不知道从哪里入手,只是一步一步写的,改改写写,一上午才做了一道题。郁闷 请高手指点一下平时遇到的练习题,怎么入手啊,说说经验好么? |
|
|
|
| 202.116.24.* |
2楼 #include <stdio.h> int main() { int shu,bai,shi,ge; for (shu=100;shu<1000;shu++) { bai=shu/100; shi=(shu-bai*100)/10; ge=shu-bai*100-shi*10; if(shu==(bai*bai*bai+shi*shi*shi+ge*ge*ge)) printf("%d\n",shu); } } |
|
|
|
3楼 { int a,b,c,d; for(a=100;a<=99;a++) b=a/100; c=a/10-b*10; d=a-b*100-c*10; if(b*b*b+c*c*c+d*d*d==a) printf("%d",a); } |
|
|
|
|
4楼 main(){ int a,b,c,num; for(a=1;a<10;a++){ for(b=0;b<10;b++){ for(c=0;c<10;c++){ if(a*100+b*10+c==(num=a*a*a+b*b*b+c*c*c)) printf("%d",num); } } } } |
|
|
|
| 221.13.130.* |
6楼 |
|
|
|
7楼 |
|
|
|
8楼 |
|
|
| 220.173.149.* |
11楼 四楼的真的很好... |
|
|
| 218.61.14.* |
12楼 |
|
|
| 202.196.242.* |
13楼 |
|
|
| 202.196.242.* |
14楼
|
|
|
| 220.175.126.* |
15楼 |
|
|
|
17楼 main() {int m,i,b,a[4]; for(b=m,m=100;m<=1000;m++) for (i=1;i<=3;i++) {a[i]=(m%10)*(m%10)*(m%10);m=m/10;} if (b==a[1]+a[2]+a[3]) printf("%d",b); } |
|
|
|
|
18楼 main() {int m,i,a[4]; for(m=100;m<=1000;m++) { for (i=1;i<=3;i++) {a[i]=(m%10)*(m%10)*(m%10);m=m/10;} if (m==a[1]+a[2]+a[3]) printf("%d",m);} } |
|
|
|
|
19楼 其实上面这几段程序,只分两种:四楼方法与其它方法. 我对四楼太崇拜了,我认为他的方法是最好的. 表面上他的循环语句最多, 其实主要语句的执行次数一次也不多,都是九百次. 为了对四楼表示敬意,我用了一个小时的时间思考,把他的程序运行时间缩短了一半,也就是0.05秒. #include<iostream.h> main() { int a,b,c,num; for(a=1;a<10;a++) { for(b=0;b<10;b++) { for(c=0;c<10;c++) { if(a+b+c<6) continue; if(a+b+c>16) continue; if(a*100+b*10+c==(num=a*a*a+b*b*b+c*c*c)) //printf("%d\n",num); cout<<num<<endl; } } } } |
|
|
|
|
20楼 #include<stdio.h> main() { int a=1,b=0,c=0,num; for(a=1;a<10;a++) { for(b=0;b<10;b++) { if(a+b>=16) continue; for(c=0;c<10;c++) { if((num=a+b+c)<=6) continue; if(num>=16) continue; if(a*100+b*10+c==(num=a*a*a+b*b*b+c*c*c)) printf("%d\n",num); } } } } |
|
|
|
|
21楼 */ #include<stdio.h> main(){ int a=1,b=0,num; for(a=1;a<10;a++){ for(b=0;b<10;b++){ if(a+b>=16) continue; if((num=a+b)<=6) goto next0; if(num>=16) goto next0; if(a*100+b*10==(num=a*a*a+b*b*b)) printf("%d\n",num); next0: if((num=a+b+1)<=6) goto next1; if(num>=16) goto next1; if(a*100+b*10+1==(num=a*a*a+b*b*b+1)) printf("%d\n",num); next1: if((num=a+b+2)<=6) goto next2; if(num>=16) goto next2; if(a*100+b*10+2==(num=a*a*a+b*b*b+8)) printf("%d\n",num); next2: if((num=a+b+3)<=6) goto next3; if(num>=16) goto next3; if(a*100+b*10+3==(num=a*a*a+b*b*b+27)) printf("%d\n",num); next3: if((num=a+b+4)<=6) goto next4; if(num>=16) goto next4; if(a*100+b*10+4==(num=a*a*a+b*b*b+64)) printf("%d\n",num); next4: if((num=a+b+5)<=6) goto next5; if(num>=16) goto next5; if(a*100+b*10+5==(num=a*a*a+b*b*b+125)) printf("%d\n",num); next5: if((num=a+b+6)<=6) goto next6; if(num>=16) goto next6; if(a*100+b*10+6==(num=a*a*a+b*b*b+216)) printf("%d\n",num); next6: if((num=a+b+7)<=6) goto next7; if(num>=16) goto next7; if(a*100+b*10+7==(num=a*a*a+b*b*b+343)) printf("%d\n",num); next7: if((num=a+b+8)<=6) goto next8; if(num>=16) goto next8; if(a*100+b*10+8==(num=a*a*a+b*b*b+512)) printf("%d\n",num); next8: if((num=a+b+9)<=6) continue; if(num>=16) continue; if(a*100+b*10+9==(num=a*a*a+b*b*b+729)) printf("%d\n",num); } } } 这样节省的时间有: 每次做循环所用的test指令和inc 指令,而goto实质上与continue差不多 另外少了算C*C*C这个~~~~ |
|
|
|
|
22楼 #include<stdio.h> main(){ int a=1,b=0,num; for(a=1;a<10;a++){ for(b=0;b<10;b++){ if(a+b>=16) continue; int lv,rv; lv=a*100+b*10; rv=a*a*a+b*b*b; if(lv+10<rv) continue; num=lv-rv; switch (num) { case 0: printf("%d\n%d\n",lv,lv+1);break; case 6: printf("%d\n",lv+2);break; case 24: printf("%d\n",lv+3);break; case 60: printf("%d\n",lv+4);break; case 120: printf("%d\n",lv+5);break; case 210: printf("%d\n",lv+6);break; case 336: printf("%d\n",lv+7);break; case 504: printf("%d\n",lv+8);break; case 720: printf("%d\n",lv+9);break; } } } } |
|
|
|
| 220.170.14.* |
23楼 C里面是不主张用goto语句的,能不用尽量不用 |
|
|
| 219.148.48.* |
25楼 { int a,b,c,i; for (i=100;i<1000;i++) {a=i/100;b=(i%100)/10;c=i%10; if( a*a*a+b*b*b+c*c*c==i) printf("%d",i);} } |
|
|
| 221.235.61.* |
26楼 |
|
|
| 221.235.61.* |
27楼 #include<stdio.h> main() {int i,j,k,p; p=i*100+j*10+k; printf("\n"); for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(p==i*i*i+j*j*j+k*k*k) printf("%d",p); getch();} |
|
|
| 219.134.160.* |
28楼 |
|
|
|
29楼 main() { int i,j,k,m; for(m=100;m<1000;m++) { i=m/100; j=(m%100)/10; k=m%100%10; if(m==i*i*i+j*j*j+k*k*k) printf("%d*%d*%d+%d*%d*%d+%d*%d*%d=%d\n",i,i,i,j,j,j,k,k,k,m); } } |
|
|
|
| 222.208.187.* |
30楼 如果将水仙花数扩展,有一个n位数,它的各位数字的n次方和等于它本身,应该怎样写这个程序呢? |
|
|

