用C++写1、四位反序数(50分) 题目描述:设N是一个四位数,它的n倍恰好是其反序数(例如:123的反序数是321),编程,输出一个满足条件的N。 输入描述:输入为一个整数n(2<=n<=9) (10分) 处理:求满足条件的N(30分) 输出描述:输出为一个四位数的整数(10分) 样式输入:9 样式输出:1089 的程序
时间: 2024-02-13 08:00:45 浏览: 293
以下是使用C++写的程序:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1000; i < 10000; i++) {
int j = i * n;
if (j >= 10000) continue; // j是5位数或以上,不符合要求
int k = (j % 10) * 1000 + (j / 10 % 10) * 100 + (j / 100 % 10) * 10 + j / 1000;
if (k == i) {
cout << i << endl;
break;
}
}
return 0;
}
```
思路:从 1000 到 9999 枚举 N,计算它的反序数,如果等于 N 乘以 n,就输出 N 并结束程序。其中,计算反序数的方法是将 j 的个位数乘以 1000,十位数乘以 100,百位数乘以 10,千位数不变,然后相加。如果 j 是 5 位数或以上,就不符合要求,跳过此次循环。
相关问题
题目描述:设N是一个四位数,它的n倍恰好是其反序数(例如:123的反序数是321),编程,输出一个满足条件的N。 输入描述:输入为一个整数n(2<=n<=9) (10分) 处理:求满足条件的N(30分) 输出描述:输出为一个四位数的整数(10分) 样式输入:9 样式输出:1089 把题目要求的代码
以下是 Python 代码实现:
```python
n = int(input()) # 输入n
for i in range(1000, 10000): # 枚举4位数
if i * n == int(str(i)[::-1]): # 判断是否为满足条件的N
print(i)
break
```
首先输入一个整数 n,然后通过 for 循环枚举 1000 到 9999 的所有四位数,对于每一个数 i,判断 i * n 是否等于其反序数(即 int(str(i)[::-1]))。如果满足条件,则输出 i 并结束循环。
用C++写设N是一个四位数,它的n倍恰好是其反序数(例如:123的反序数是321),编程,输出一个满足条件的N。 输入描述:输入为一个整数n(2<=n<=9) (10分) 处理:求满足条件的N(30分) 输出描述:输出为一个四位数的整数(10分) 样式输入:9 样式输出:1089 的程序
以下是 C++ 的实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
for(int i = 1000; i < 10000; i++) {
if(i * n == stoi(string(to_string(i).rbegin(), to_string(i).rend()))) {
cout << i << endl;
break;
}
}
return 0;
}
```
当输入为9时,输出为1089。
阅读全文