用c++求出所有水仙花数
时间: 2023-06-03 20:03:37 浏览: 137
好的,这个问题属于数学问题。水仙花数是指一个三位数,其各位数字立方和等于该数本身,例如153就是一个水仙花数。以下是用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(i*i*i+j*j*j+k*k*k==n){
printf("%d\n",n);
}
}
return 0;
}
```
这段代码可以输出所有水仙花数:153、370、371、407。
相关问题
用DEV C++写出所有水仙花数
在DEV C++中编写查找水仙花数的程序,首先需要包含一些必要的库文件并定义一个函数来检查数字是否是水仙花数。以下是简单的步骤:
```cpp
#include <iostream>
#include <string>
// 函数来判断一个数是否为水仙花数
bool isArmstrong(int number) {
int originalNumber = number;
int sum = 0;
int length = std::to_string(number).length();
// 把数字转换成字符串,然后分割每一位
for (int i = 0; i < length; ++i) {
char digit = std::to_string(number)[i] - '0';
sum += std::pow(digit, length); // 每位数立方和等于原数本身
}
return originalNumber == sum;
}
int main() {
for (int i = 100; i <= 999; i++) {
if (isArmstrong(i)) {
std::cout << i << " is a narcissistic number.\n";
}
}
return 0;
}
```
这段代码会从100到999遍历每个整数,如果该数是水仙花数(即其各位数字立方之和等于自身),则输出它是水仙花数。
用c++编程求出所有的水仙花数
好的,我可以为您编写一个求出所有水仙花数的 C 语言程序。水仙花数指一个 n 位数 ( n>=3 ),它每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。
下面是求解所有水仙花数的 C 语言程序:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int n, i, j, sum, temp;
printf("请输入要求的最大位数 n:");
scanf("%d", &n);
for (i = 1; i <= pow(10, n) - 1; i++)
{
temp = i;
sum = 0;
for (j = 1; j <= n; j++)
{
sum += pow(temp % 10, n);
temp = temp / 10;
}
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
```
您可以将此程序保存为一个 C 文件并在 C 语言开发环境中编译和运行,它将在控制台输出所有的水仙花数。
当然,您如果有其他问题,也可以直接向我提出。
阅读全文