学习目标:
- 使用代码完成完成程序《求水仙花数》
题目:
- 编写一个程序,输入一个正整数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;
}
完