这程序是干什么的?

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:35:57
我自己写的,本来是想输出水仙花数,但是……
程序如下:
#include<iostream.h>
void main(){
int n,a,b,c;
cout<<"输入n:";cin>>n;
n%1000==a;n%100==b;n%10==c;
while(n>=100&&n<=1000);
n=a*a*a+b*b*b+c*c*c;
cout<<n;

}
可以执行。但是不管n为什么数,结果都是-790273984!!!

1.n%1000==a;n%100==b;n%10==c;
”==”是判断是否相等,”=”才是赋值号,将右边赋给左边;应为a=n%100;b=n%100;c=n%10;
2.所求数不是自己输进去的,而是通过编程电脑得出的.
#include<iostream>
using namespace std;
void main(void)
{
cout<<"三位的水仙花数有:"<<endl;
for(int i=100;i<1000;i++)
{
int c,b,a;
c=i%10;
b=i/10%10;
a=i/100;
if(i==a*a*a+b*b*b+c*c*c)
cout<<i<<" ";
}
}

水仙花数是指一种三位数,其各个数之立方和等于该数。

水仙花数共有4个,分别为:153、370、371、407
( 例如:1^3 + 5^3 + 3^3 = 153 )

C语言的"水仙花数"实现代码:

void main()
{
int ge,shi,bai,number;

for(number=100;number<1000;number++)
{
bai=number/100;
shi=(number%100)/10;
ge=number%10;
if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge) printf("\nnumber=%d\n",number);
}
getch();
}

n%1000==a;n%100==b;n%10==c;
反过来看看
a=n%1000;