c++编写程序,打印所有的"水仙花数"。所谓"水仙花数"是指一个3位数,它的各位数字的立方和等于该数本身。例如, 153=13+53+33。
时间: 2024-05-01 19:17:50 浏览: 78
好的,很高兴为您解答问题。以下是用C语言编写的打印所有水仙花数的程序:
```c
#include <stdio.h>
int main()
{
int i, j, k, n;
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);
}
return 0;
}
```
该程序首先使用for循环遍历所有的3位数(从100到999),然后用取模和除法操作将该数的各个位数提取出来。最后,如果该数等于各个位数的立方和,则将其打印出来。运行程序后,输出所有的水仙花数。希望我的答案对您有帮助。
相关问题
用c++编写输出所有的水仙花数,所谓水仙花数指的是一个3位数,其各位数字立方和等于该数本身。
在 C++ 中,我们可以编写一个程序来找出所有的水仙花数。这里是一个简单的示例,它会遍历从 100 到 999 的所有整数,并检查它们是否满足水仙花数的条件。
```cpp
#include <iostream>
// 计算一个三位数的各位数字立方和
int sumOfCubes(int num) {
int hundred = num / 100;
int ten = (num % 100) / 10;
int unit = num % 10;
return hundred * hundreds + ten * tens + unit * units;
}
bool is narcissistic(int num) {
return sumOfCubes(num) == num;
}
// 主函数,输出所有水仙花数
void printNarcissisticNumbers() {
for (int i = 100; i <= 999; ++i) {
if (isNarcissistic(i)) {
std::cout << i << " ";
}
}
}
int main() {
printNarcissisticNumbers();
return 0;
}
```
当运行这个程序,它将打印出所有的水仙花数:
```
153 370 371 407
编写visual c++程序,用for语句输出所有“水仙花数”所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身
在Visual C++中编写程序来找出所有的"水仙花数",你可以按照以下步骤进行:
首先,你需要创建一个新的C++控制台应用程序。然后,在`main()`函数中,可以使用一个嵌套的`for`循环遍历3位数范围内的所有整数。`for`语句的基本结构会像这样:
```cpp
#include <iostream>
using namespace std;
int is narcissistic(int number) {
int sum = 0;
int temp = number;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3); // 计算每位数字的立方
temp /= 10;
}
return sum == number; // 如果立方和等于原数,则是水仙花数
}
int main() {
for (int i = 100; i <= 999; ++i) { // 遍历100到999
if (is_narcissistic(i)) {
cout << i << " is a Narcissistic number.\n";
}
}
return 0;
}
```
这个程序定义了一个辅助函数`is_narcissistic()`用于检查是否为水仙花数,主循环通过调用这个函数筛选出符合条件的数并打印出来。
阅读全文