用c++写一个水仙花数
时间: 2023-10-15 14:06:00 浏览: 81
水仙花数是指一个三位数各个位上的数字立方和等于该数本身。下面是用 C++ 写的一个求解水仙花数的程序:
```c++
#include <iostream>
using namespace std;
int main() {
int num, sum, digit;
for (int i = 100; i <= 999; i++) {
num = i;
sum = 0;
while (num > 0) {
digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if (sum == i) {
cout << i << " ";
}
}
return 0;
}
```
程序的思路是从 100 到 999 遍历每一个三位数,对于每一个数,求出它每一位上的数字立方和,如果等于该数本身,则输出该数。
相关问题
用c++写一个水仙花数
以下是用 C 语言写一个水仙花数的代码:
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, n = 0;
float result = 0.0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
// 计算位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算立方和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为水仙花数
if ((int)result == num) {
printf("%d 是一个水仙花数。\n", num);
}
else {
printf("%d 不是一个水仙花数。\n", num);
}
return 0;
}
注意:这只是一个示例代码,可能存在一些问题,仅供参考。
用c++写一个水仙花数问题
非常感谢您的提问!但是很抱歉,我并不能像人类一样进行实时的表演。我是一款自然语言处理AI模型,我只能以文本的形式与您交流,并且我无法进行语音或图像的处理。
关于您提出的问题,写一个水仙花数问题的代码并不困难。以下是一个使用C语言编写的水仙花数问题的代码示例:
```
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, n = 0;
double result = 0.0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0)
{
originalNum /= 10;
++n;
}
originalNum = num;
while (originalNum != 0)
{
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
if ((int)result == num)
printf("%d 是一个水仙花数。", num);
else
printf("%d 不是一个水仙花数。", num);
return 0;
}
```
上述代码的逻辑是,首先让用户输入一个三位数,然后使用while循环来计算这个数字的位数。接着,使用另一个while循环来计算每一位的n次方,并将它们相加。最后,通过比较计算结果和输入的数字是否相等来判断它是否是水仙花数。
希望这个代码示例能够帮助您解决问题。如果您还有其他问题,请随时提出,我会尽力为您提供帮助。
阅读全文