求教,我们C语言老师布置的作业,“打印出所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字立方和

2024-11-02 01:11:52
推荐回答(5个)
回答1:

#include
int main()
{
//所谓水仙花数是指一个三位数,其各位数字立方和等于该数
int i;
int a=0,b=0,c=0; //a表示百位上的数,b表示十位上的数,c表示个位上的数,
printf("打印三位数的所有水仙花数\n");
for (i=100;i<1000;i++)
{
a=i/100;
b=i/10%10;

c=i%10;
if (i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
return 0;
}

回答2:

#include "stdafx.h"
#include
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
//13.题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
//本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
// 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位
int nEntries=0,nTen=0,nHundred=0;
for ( int i=100;i<1000;i++)
{
nHundred=i/100;
nTen=i%100/10;
nEntries=i%10;
if (i==nHundred*nHundred*nHundred+nTen*nTen*nTen+nEntries*nEntries*nEntries)
{
cout<<"\t"< }
}
return 0;
}
有一点不好 就是不能判断100一下得

回答3:

#include

int main(void)

{

int ge,shi,bai,i;

for(i=100;i<1000;i++)

{

bai=i/100;                                    //百位

shi=i/10%10;                                //十位

ge=i%10;                                      //个位

if(i==bai*bai*bai+shi*shi*shi+ge*ge*ge)

printf("水仙花数为%d\n",i);

}

return 0;

}

望采纳!!!

回答4:

#include
int main()
{
for(int num=100;num<1000;++num)
{
int a=num%10;
int b=num/10%10;
int c=num/100%10;
if((a*a*a+b*b*b+c*c*c)==num) printf("%d\n",num);
}
return 0;
}

回答5:

#include
main(){
int i,j,k,n;
printf("\n水仙花数有:");
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%5d",n);
}
printf("\n");
}