学习目标:
- 使用代码完成程序《求水仙花数》
题目:
- 编写一个程序,输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。所谓的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。
逻辑:
- 由题目求水仙花数得:需要使用循环语句,从100循环到999.
- 由题目水仙花数的定义得:需要使用判断语句,判断是否为水仙花数,即三位数的个位数、十位数、百位数的立方和是否等于该数自身。
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <math.h>
int main()
{
int i = 0;
int n = 0;
scanf("%d",&n);
for (i = 100; i <= n; i++)
{
int count = 1;
int tmp = i;
int sum = 0;
while (tmp / 10)
{
count++;
tmp = tmp / 10;
}
tmp = i;
while (tmp)
{
sum += pow(tmp % 10, count);
tmp = tmp / 10;
}
if (sum == i)
printf("%d\n", i);
}
return 0;
}
完