编程神奇的数字怎么写

时间:2025-01-26 09:15:01 网络游戏

编程中的“神奇数字”通常指的是具有特定性质或规律的数字。以下是一些与“神奇数字”相关的编程题目和代码示例:

MagicNumber

题目描述:如果一个数(可能包含前导0)乘以2后,结果仍然由相同的数字组成,则称该数为MagicNumber。

输入:多组测试数据,每组一行,每行是一个不大于1e10000的整数(可能有前导0),遇到EOF标志结束程序。

输出:判断输入的数是否为MagicNumber,是则输出“MagicNumber”,否则输出“NotMagicNumber”。

示例输入:142857 0 142857 857 1420588235294117647

示例输出:MagicNumber MagicNumber MagicNumber MagicNumber

代码示例(C++):

```cpp

include

include

define MAX 10001

typedef struct {

int date[MAX];

} intdate;

int main() {

int n;

while (cin >> n) {

if (n == 0) break;

bool isMagic = true;

for (int i = 0; i < n; ++i) {

int original = n % 10;

n /= 10;

if ((n % 10) * 2 != original) {

isMagic = false;

break;

}

}

if (isMagic) {

cout << "MagicNumber" << endl;

} else {

cout << "NotMagicNumber" << endl;

}

}

return 0;

}

```

数字转换

题目描述:将一个数字的偶数位和奇数位分别提取出来,然后交换位置,得到一个新的数字。

输入:一个字符串表示的数字。

输出:一个新的字符串表示的数字。

代码示例(C++):

```cpp

include

include

include

std::string change(std::string number) {

std::string a = number;

std::stack b;

int left = 0;

int right = a.size() - 1;

while (right >= left) {

if (a[left] % 2 == 0) {

b.push(a[left]);

}

left++;

}

left = 0;

while (right >= left) {

if (a[left] % 2 == 0) {

a[left] = b.top();

b.pop();

}

left++;

}

return a;

}

int main() {

std::string number;

std::cin >> number;

std::string result = change(number);

std::cout << result << std::endl;

return 0;

}

```

奇妙数字

题目描述:找到一个数字,其平方和立方正好包含0到9的所有数字。

代码示例(C++):