判断水仙花数——C++问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:20:46
给定一个十进制正整数n,判断其是否为水仙花数。水仙花数是一个三位数,其个、十、百位数字的立方和恰好等于其本身。例如:153是一个水仙花数,因为 。

输入

输入数据有若干行。每行上有一个正整数对应一种情形。

输出

对于每一种情形,先输出“Case #:”(#为序号,从1起),然后输出n,逗号,结果(Yes或No),换行。

输入样例

123

987

153

输出样例

Case 1: 123, No

Case 2: 987, No

Case 3: 153, Yes

注意输入与输出的格式哦!

我给出两种代码:
#include <iostream.h>
void main()
{
int a[100];
int count=0,i,x,y,z;
cout<<"请输入待测数,以0结束。"<<endl;
do
{
cin>>a[count];
}while(a[count++]!=0);
count--;
for(i=0;i<count;i++)
{
x=a[i]%10;
y=a[i]/10%10;
z=a[i]/100;
if (x*x*x+y*y*y+z*z*z==a[i]) cout<<"Case "<<i+1<<":"<<a[i]<<",Yes"<<endl;
else cout<<"Case "<<i+1<<":"<<a[i]<<",No"<<endl;
}
}
如果输入个数确定可改为:
#include <iostream.h>
#define N 3
void main()
{
int a[N];
int count=0,i,x,y,z;
cout<<"请输入待测数。"<<endl;
for(i=0;i<N;i++) cin>>a[i];
for(i=0;i<N;i++)
{
x=a[i]%10;
y=a[i]/10%10;
z=a[i]/100;
if (x*x*x+y*y*y+z*z*z==a[i]) co