用 c++ 编写一个程序,输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。所谓的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。
时间: 2023-05-29 20:02:13 浏览: 170
```
#include <stdio.h>
int main() {
int N, i, ge, shi, bai, sum;
printf("请输入正整数N(N大于等于100小于等于999):");
scanf("%d", &N);
printf("100~%d之间的水仙花数为:\n", N);
for(i=100; i<=N; i++) {
ge = i % 10; // 个位数
shi = i / 10 % 10; // 十位数
bai = i / 100; // 百位数
sum = ge * ge * ge + shi * shi * shi + bai * bai * bai; // 立方和
if(sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
相关问题
计算不大于正整数n值的所有正偶数的和编写一个sum函数求和:输入一个正整数n,统计不大于n值的所有正偶数的和,在主函数中完成输入输出。要求用do-while语句实现。 输入说明一个正整数输出说明 统计不大于这个正整数的所有正偶数的和输
要使用do-while循环编写一个`sum`函数来计算所有小于等于给定正整数`n`的正偶数之和,你可以按照以下步骤进行:
```c++
#include <iostream>
// 定义sum函数,接收一个正整数作为参数
int sum(int n) {
int current = 0; // 初始化当前偶数为0
int total = 0; // 初始化总和为0
do {
total += current; // 将当前偶数加到总和上
current += 2; // 每次迭代增加2,因为我们要找的是偶数
} while (current <= n); // 只有当当前偶数小于等于n时继续循环
return total;
}
int main() {
int input;
std::cout << "请输入一个正整数: ";
std::cin >> input;
if (input > 0) { // 确保输入是一个正整数
int result = sum(input);
std::cout << "不大于" << input << "的所有正偶数的和是: " << result << std::endl;
} else {
std::cout << "错误!请输入一个正整数。" << std::endl;
}
return 0;
}
```
在这个程序中,`sum`函数利用do-while循环遍历从0开始的所有偶数,直到找到大于`n`的那个。然后在主函数中获取用户输入并调用`sum`函数,最后输出结果。
用c++编写:输入一个正整数n,判断是否为质数,代码如何写
在C++中,判断一个正整数n是否为质数可以使用循环和条件检查的方式来实现。下面是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) { // 质数定义排除1和0
return false;
}
for (int i = 2; i * i <= n; i++) { // 只需检查到根号n,因为大于根号n的因数必定有一个小于等于根号n
if (n % i == 0) { // 如果n能被i整除,则n不是质数
return false;
}
}
return true; // 没有找到因子,说明n是质数
}
int main() {
int n;
cout << "请输入一个正整数: ";
cin >> n;
if (isPrime(n))
cout << n << " 是质数" << endl;
else
cout << n << " 不是质数" << endl;
return 0;
}
```
阅读全文