数学黑洞问题
来源:互联网 发布:iphone长截图软件 编辑:程序博客网 时间:2024/04/28 23:24
“数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数。重复进行上述运算,最终会出现一个神秘的数,请编程输出这个神秘的数。
#include <stdio.h>#define INIT 1234#define SWAP(arr,i,j)\{arr[i]^=arr[j];arr[j]^=arr[i];arr[i]^=arr[j];}#define PUSHMIN(arr, i, j)\if(arr[i]>arr[j])SWAP(arr,i,j);#define SORTARR4(arr)\{\PUSHMIN(arr,0,1);\PUSHMIN(arr,0,2);\PUSHMIN(arr,0,3);\PUSHMIN(arr,1,2);\PUSHMIN(arr,1,3);\PUSHMIN(arr,2,3);\}#define I2A(num,arr)\{\arr[0]=(num)/1000%10;\arr[1]=(num)/100%10;\arr[2]=(num)/10%10;\arr[3]=(num)%10;\}#define A2II(arr,num)\num=arr[0]*1000+arr[1]*100+arr[2]*10+arr[3];#define A2ID(arr,num)\num=arr[3]*1000+arr[2]*100+arr[1]*10+arr[0];int main(int argc, const char *argv[]){unsigned int cur = 1234, prev = 0;unsigned int max, min;unsigned char arr[4];while (1){prev = cur;I2A(cur,arr);SORTARR4(arr);A2ID(arr,max);A2II(arr,min);cur = max - min;if (prev == cur){printf("%d\n", cur);break;}}return 0;}
最后求出这个黑洞数是6174
- 数学黑洞6174问题
- 数学黑洞问题
- 1019数字黑洞(数学问题)
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 数学黑洞
- 从我写程序那天起 我就没有打算写程序 — 程序员30岁问题
- Android ListPreference的用法
- 暴发户与贵族
- 贡献15本经典C、C++、MFC、VC++教程,都是pdf完整版的
- android rom移植知识普及
- 数学黑洞问题
- ArcGIS单机双SDE无法启动问题解决方式
- 关于C++头文件互相包含对程序员的一点建议
- oracle 日期常用函數 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)
- PLSQL Developer 8 连接Oracle 11g X64版
- excel中精度损失导致太长的数字后面全变成了零的解放方法
- 百万富翁成长路线
- 工作笔记(一)
- 线程间操作无效: 从不是创建控件“label1”的线程访问它。