生成c语言水仙花数的代码
时间: 2023-11-03 21:23:23 浏览: 39
#include <stdio.h>
#include <math.h>
int main() {
int i, n, sum, temp;
printf("请输入一个整数n:");
scanf("%d", &n);
printf("n以内的水仙花数有:");
for (i = 1; i <= n; i++) {
sum = 0;
temp = i;
while (temp != 0) {
sum += pow(temp % 10, 3);
temp /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
相关问题
c语言判断水仙花数代码
下面是c语言判断水仙花数的代码:
```c
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个正整数: ");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
// 计算每一位数字的立方和
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
// 判断是否为水仙花数
if (result == num) {
printf("%d 是水仙花数", num);
} else {
printf("%d 不是水仙花数", num);
}
return 0;
}
```
该程序通过循环计算输入的数字的每一位数字的立方和,然后判断是否与原数字相等,如果相等则是水仙花数,否则不是。
c语言解析水仙花数代码
水仙花数是指一个三位数的各个位上数字的立方和等于该数本身,例如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是C语言解析水仙花数的代码:
```c
#include <stdio.h>
int main()
{
int i, num, digit, sum;
printf("水仙花数:\n");
for (i = 100; i < 1000; i++)
{
num = i;
sum = 0;
while (num > 0)
{
digit = num % 10;
sum = sum + digit * digit * digit;
num = num / 10;
}
if (i == sum)
{
printf("%d\n", i);
}
}
return 0;
}
```
代码解析:
1. 首先定义了三个变量i、num和sum,分别用来表示当前的数字、当前数字的个位数字以及各个位上数字的立方和。
2. 使用for循环,从100到999遍历所有三位数。
3. 将当前数字i赋值给num,将sum清零。
4. 使用while循环,取出num的个位数字digit,计算digit的立方,并加入到sum中。然后将num除以10,继续取出下一个数字,直到num变成0为止。
5. 如果当前数字i等于sum,则说明i是一个水仙花数,输出i。
6. 循环结束,整个程序结束。