gpt4 book ai didi

c - 在 c 中打印 1 - 999 之间的所有阿姆斯壮数字

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:51 25 4
gpt4 key购买 nike

如果我想要这样的输出:

1st Armstrong number = 0
2nd Armstrong number = 1
3rd Armstrong number = 153
.............................................
.............................................
20th Armstrong number = ....

我的问题是:如果我必须打印许多阿姆斯特朗数字(第 1 到第 20 个),那么一个一个地写 printf 是正确的方法吗?那么我需要很多时间&代码会很长,我如何最小化它?

请帮忙....

这是我的代码,它能够找到前 6 个阿姆斯壮数..

  int main(){
int a, b, c, num, i=0,j=0;
printf("Printing all the armstrong numbers between 1 - 999");
while(i<=999)
{
a= i/100;
a= a*a*a;
num= i%100;
b= num/10;
b= b*b*b;
c= num%10;
c=c*c*c;
if(i==a+b+c)
{
j++;
if(j==1) printf("\n1st");
else if(j==2) printf("\n2nd");
else if(j==3) printf("\n3rd");
else if(j==4) printf("\n4th");
else if(j==5) printf("\n5th");
else if(j==6) printf("\n6th");

printf(" Armstrong number= %d",i);
}
i++;
} // end of while
return 0;
} // end of main

最佳答案

很简单:

if(i==a+b+c)
{
j++;

int key = j % 10;

if(j == 11)
key = 11;

switch(key){

case 1:
printf("\n%dst Armstrong number= %d",j,i);
break;
case 2:
printf("\n%dnd Armstrong number= %d",j,i);
break;
case 3:
printf("\n%drd Armstrong number= %d",j,i);
break;
case 11:
default:
printf("\n%dth Armstrong number= %d",j,i);

}
}

关于c - 在 c 中打印 1 - 999 之间的所有阿姆斯壮数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23144000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com