内容:输出所有在给定范围内的水仙花数
目的:掌握循环与if语句
程序代码:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:匡效国
* 完成日期:2013 年 4 月 10 日
* 版 本 号:v1.0
*
* 对任务及求解方法的描述部分:
* 输入描述:循环输入两个数,输出两个数之间的水仙花数
* 问题描述:水仙花数是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。
*现在要求输出所有在m和n范围内的水仙花数。
* 程序输出:见下图
* 问题分析:略
* 算法设计:略
*/
#include
using namespace std;
int main()
{
int m,n,t=0,temp;
int a,b,c;//a,b,c分别对应个位,十位和百位
int i;//i用于循环
while(cin>>m>>n)//使用while循环输入m和n
{
if(m>n)//如果m>n,需交换m和n的值
{
temp=m;
m=n;
n=temp;
}
for(i=m;i<=n;i++)//循环判断m和n之间的数
{
a=i%10;//a,b,c分别为这个三位数的各位,十位和百位
c=(i-a)/100;
b=(i-a-100*c)/10;
if(i==a*a*a+b*b*b+c*c*c)
{
if(t==0)//此处为符合题目要求,分不同情况输出
cout<
else
cout<
t=t+1;
}
}
if(t==0)//如果t=0,说明m和n之间无水仙花数,输出“no”
cout<
else//否则令t为0,进行下一轮的判断
t=0;
cout<
}
return 0;
}
运行结果:
感悟:熟能生巧