这是一个使用c++语言的程序,可以输出指定区间内的所有水仙花数:
时间: 2024-02-11 15:09:32 浏览: 31
好的,这是一个使用C++语言的程序,可以输出指定区间内的所有水仙花数:
```c++
#include <iostream>
using namespace std;
int main() {
int start, end;
cin >> start >> end; // 输入一个数字区间[start, end]
for (int num = start; num <= end; num++) { // 循环遍历[start, end]内的所有数字
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10; // 取出num的最后一位数字
sum += digit * digit * digit; // 将数字的每一位的立方相加
temp /= 10; // 去掉num的最后一位数字
}
if (num == sum) { // 如果num等于它的每个数位的立方之和
cout << num << " "; // 则输出num
}
}
return 0;
}
```
你可以将上面的代码复制到C++的开发环境中运行,输入一个数字区间,程序将会输出该区间内的所有水仙花数。如果有其他问题,可以接着问我。
相关问题
编写一个c++程序,输出所有的水仙花数
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n <= 999; 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);
}
}
printf("\n");
return 0;
}
用c++语言输出所有水仙花数,每行只输出四个结果
以下是使用C语言输出所有水仙花数的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k;
int cnt = 0; // 用于计数已经输出了多少个水仙花数
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
int num = i * 100 + j * 10 + k;
int sum = pow(i, 3) + pow(j, 3) + pow(k, 3);
if (num == sum) { // 判断是否为水仙花数
printf("%d ", num);
cnt++;
if (cnt % 4 == 0) { // 每行只输出四个结果
printf("\n");
}
}
}
}
}
return 0;
}
```
该程序首先使用三层嵌套循环枚举所有的三位数,然后计算每个三位数的各位数字的立方和,判断是否等于该三位数本身,如果等于就是一个水仙花数。代码中的 `pow` 函数用于计算一个数的指定次幂,也可用简单的乘法代替。每输出四个结果就换一行,实现了每行只输出四个结果的要求。