编辑一个代码来得到所有N位数的水仙花数
时间: 2023-04-03 11:04:19 浏览: 58
以下是 C 知道的回答:
#include <stdio.h>
#include <math.h>
int main() {
int n, i, j, sum, num;
printf("请输入位数n:");
scanf("%d", &n);
for (i = pow(10, n - 1); i < pow(10, n); i++) {
sum = 0;
num = i;
for (j = 0; j < n; j++) {
sum += pow(num % 10, n);
num /= 10;
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
以上代码可以得到所有N位数的水仙花数。
相关问题
水仙花数c++ 一个n位数
水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。在C++中,可以通过循环和取余运算来判断一个数是否为水仙花数。具体实现可以参考以下代码:
```
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n, num, sum, digit;
cout << "请输入一个n位数:";
cin >> n;
num = pow(10, n-1); // 计算n位数的最小值
while (num < pow(10, n)) {
sum = 0;
int temp = num;
while (temp != 0) {
digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
if (sum == num) {
cout << num << "是水仙花数" << endl;
}
num++;
}
return 0;
}
```
这段代码可以判断一个n位数是否为水仙花数,并输出所有的水仙花数。其中,使用了pow函数来计算幂次方,使用了循环和取余运算来计算每个位上的数字,并使用了if语句来判断是否为水仙花数。
java n位数水仙花代码
以下是 Java 实现 n 位水仙花数的代码:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 测试 n 位数水仙花数
int n = 3;
ArrayList<Integer> res = NarcissiticNumber(n);
for (int i : res) {
System.out.println(i);
}
}
// n 位数水仙花数
public static ArrayList<Integer> NarcissiticNumber(int n) {
ArrayList<Integer> res = new ArrayList<Integer>();
for (int i = (int)Math.pow(10, n - 1); i < (int)Math.pow(10, n); i++) {
int temp = i;
int sum = 0;
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, n);
temp /= 10;
}
if (sum == i) {
res.add(i);
}
}
return res;
}
}
希望这段代码能够帮助到你!