C语言输出0-1000以内的水仙花数 水仙花数算法:一个数=它各位的立方和,例如:153= 1*1*1 + 5*5*5 + 3*3*3 提示:for循环,求余(%)、取整(/)运算符
时间: 2023-10-21 13:29:04 浏览: 105
好的,以下是C语言代码示例:
```c
#include <stdio.h>
int main() {
int num, i, j, k;
for (num = 0; num <= 1000; num++) {
i = num / 100; // 取百位数
j = num / 10 % 10; // 取十位数
k = num % 10; // 取个位数
if (num == i * i * i + j * j * j + k * k * k) { // 判断是否为水仙花数
printf("%d\n", num);
}
}
return 0;
}
```
这段代码会从0开始循环到1000,对于每一个数,分别取其百位、十位和个位,计算它们的立方和并判断是否等于该数本身。如果等于,则输出该数。最后达到输出0-1000以内的水仙花数的目的。
相关问题
用c语言 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为。
在C语言中,可以编写一个小程序来找出所有的水仙花数。这里是一个简单的算法实现:
```c
#include <stdio.h>
// 函数定义,检查一个数是否是水仙花数
int is narcissistic(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
// 主函数,遍历并打印所有三位水仙花数
int main() {
for (int i = 100; i <= 999; ++i) { // 遍历从100到999的所有三位数
if (is_narcissistic(i)) { // 如果是水仙花数,就打印出来
printf("%d ", i);
}
}
return 0;
}
```
在这个程序里,我们首先定义了一个`is_narcissistic`函数,计算给定数字每一位的立方和并与原数比较。然后在主函数中,通过一个for循环遍历所有三位数,并调用这个函数判断是否为水仙花数。
运行此程序会输出所有的水仙花数:153, 370, 371, 407。
以下c语言程序是输出所有的水仙花数。所谓水仙花数是一个三位数,其各位数字的立方和等于该数本身,用三种算法
算法一:
#include <stdio.h>
int main()
{
int i, j, k;
for(i = 1; i <= 9; i++)
{
for(j = 0; j <= 9; j++)
{
for(k = 0; k <= 9; k++)
{
int n = i * 100 + j * 10 + k;
if(n == i * i * i + j * j * j + k * k * k)
{
printf("%d\n", n);
}
}
}
}
return 0;
}
算法二:
#include <stdio.h>
int main()
{
int n, i, j, k;
for(n = 100; n < 1000; n++)
{
i = n / 100;
j = n / 10 % 10;
k = n % 10;
if(n == i * i * i + j * j * j + k * k * k)
{
printf("%d\n", n);
}
}
return 0;
}
算法三:
#include <stdio.h>
#include <math.h>
int main()
{
int n, i, j, k;
for(n = 100; n < 1000; n++)
{
i = n / 100;
j = n / 10 % 10;
k = n % 10;
if(n == pow(i, 3) + pow(j, 3) + pow(k, 3))
{
printf("%d\n", n);
}
}
return 0;
}
阅读全文