永发信息网

C语言。 输出所有的3位数,

答案:4  悬赏:10  手机版
解决时间 2021-03-03 11:12
  • 提问者网友:风月客
  • 2021-03-03 05:04
C语言。 输出所有的3位数,其各位数字立方和等于该数本身,例如153=1的3次方+5的3次方+3的3次方。
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-03-03 05:24
#include <stdio.h>
#include <stdlib.h>

int cubic(int a){
return a*a*a;
}
int main(){
int i;
int num,tmpNum;
int tmp[3];
for(num=100;num<1000;num++){//这里可以优化,减小1000,加大步长,不过这个更容易懂
i=0;
tmpNum=num;
while(tmpNum){
tmp[i++]=tmpNum%10;
tmpNum/=10;
}
tmpNum=cubic(tmp[0])+cubic(tmp[1])+cubic(tmp[2]);
if(tmpNum==num){
printf("%d\n",num);
}
}
system("pause");
return 0;
}
全部回答
  • 1楼网友:佘樂
  • 2021-03-03 08:18
#include <stdio.h> int main(void) { int i; int j; int k; for(i=0;i<10;i++){ for(j=0;j<10;j++){ for(k=0;k<10;k++){ if(i*i*i+j*j*j+k*k*k == i*100+j*10+k &&  i*100+j*10+k >=100){ printf("%d\n",i*100+j*10+k); } } } } return 0; }程序比较挫,你就凑合着看了! 望你采纳!
  • 2楼网友:西风乍起
  • 2021-03-03 07:20
有,只是从屏幕里被挤出去了,默认cmd窗口只能缓冲300行,你可以一行多输出几个 #include int main() {  unsigned n;  int count=0;  //再定义一个变量用来计数  for(n=100000;n<=999999;n++)  {   if(n/100000==n%10)   if(n/10000%10==n/10%10)   if(n/1000%10==n/100%10)   {    printf("%d  ",n);    count++;    if(count%5==0) //每行5个     printf("\n");   }     }  getch(); }
  • 3楼网友:愁杀梦里人
  • 2021-03-03 06:33
有,只是从屏幕里被挤出去了,默认cmd窗口只能缓冲300行,你可以一行多输出几个 #include int main() {  unsigned n;  int count=0;  //再定义一个变量用来计数  for(n=100000;n<=999999;n++)  {   if(n/100000==n%10)   if(n/10000%10==n/10%10)   if(n/1000%10==n/100%10)   {    printf("%d  ",n);    count++;    if(count%5==0) //每行5个     printf("\n");   }     }  getch(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯