2023年12月16日发(作者:初一数学试卷多选题)
数学黑洞(cc++)实现
首先引入这个概念--
//首先第一点 我们需要用到数组的知识点
二点需要用到格式化输出 很重要
我们看提示
然后需要一定算法 (冒泡排序)这里可以看我的
这个是为了帮我们排取最大值和最小值
下面代码当中带有解释
1
2
3
4
5
6
7
8
int arr[4];//设置4个位数
int seperate(int n)
{
int sum1 = 0;
int sum2 = 0;
int tmp = 0;
int sz = 4;
arr[0] = n % 10;8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
arr[0] = n % 10;
arr[1] = n / 10 % 10;
arr[2] = n / 100 % 10;
arr[3] = n / 1000 % 10;
for (int i = 0; i { for (int j = 0; j < (sz - 1 - i); j++) { if (arr[j] < arr[j + 1])//从大到小的冒泡排序操作 { tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } //进行求和操作处理 for (int i = 0; i < sz; i++) { sum1 = sum1 + arr[i] * pow(10, sz - 1 - i);//这个是计算不同位的方法 } for (int i = 0; i < sz - 1; i++)//冒泡排序 从小到大 的排列顺序操作 { for (int j = 0; j < (sz - 1 - i); j++) { if (arr[j] > arr[j + 1]) { tmp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = tmp; } } } for (int i = 0; i < sz; i++) { sum2 = sum2 + arr[i] * pow(10, sz-1-i);//这里次方位数不要搞到了 就是不要颠倒了 } return sum1 - sum2;//返回两数之差 } int main() { int n; cin >> n; printf(\"%04dn\", n);//这个是打印那些数字 while (n != 6174)//这个是那个数学黑洞 我们只要到达这个位置停止就可以 { n = seperate(n); printf(\"%04dn\", n);//这个也是属于格式化输出的一种类型 } }
更多推荐
需要,操作,用到,输出
发布评论