6174问题求解
2015-08-25 19:13
381 查看
著名的6147问题如下:
我的思路:
(1)先写出原数获得新数的操作
up函数完成了将四个混乱的数排序并且返回题干中3087的那种操作
getB函数利用up函数把一个四位数变成新的四位数
(2)写出判断新出现的数是否和原来的数重复的操作
通过istrue函数来判断,istrue函数有三个参数 num,k,temp
(3)主函数内写的是啥 ⊙0⊙
主函数初始化了 num,将宏定义的初始数赋为 num[0];然后初始化了统计多少次会重复的计数变量count
附上源码:
程序截图:
![](http://img.blog.csdn.net/20150825191311621)
补录:如果有观众朋友们对上述代码不清楚的地方,欢迎前来指教
输入一个四位数,将其各位数字排大小,排成升序和降序两种形式,然后相减得到新数,最后对新数再进行如上操作,直到重复为止。例如:从1234出发 得到 4321-1234 =3087,然后对3087再进行如上操作 样例输入:1234 样例输出:1234->3087->8352->6174
我的思路:
(1)先写出原数获得新数的操作
通过函数up(),getB()完成,getB是指获得新数的意思
up函数完成了将四个混乱的数排序并且返回题干中3087的那种操作
getB函数利用up函数把一个四位数变成新的四位数
(2)写出判断新出现的数是否和原来的数重复的操作
通过istrue函数来判断,istrue函数有三个参数 num,k,temp
num指存储每次转换后的数的数组 k指每次妄图加进num数组的数 temp指新加进来的数该在数组中的位置 如果没有重复该函数就会返回1,重复就会返回0
(3)主函数内写的是啥 ⊙0⊙
主函数初始化了 num,将宏定义的初始数赋为 num[0];然后初始化了统计多少次会重复的计数变量count
附上源码:
#include <iostream> using namespace std; #define X 1234 //更改X获得初始数 #define N 10000 //用来存放得到的数的矩阵规模 int up(int a,int b,int c,int d){ //得到新数的函数 int num[4]={a,b,c,d}; int temp ; for(int i=0;i<4;i++){ for(int j=i+1;j<4;j++){ if(num[j]>num[i]){ temp = num[j]; num[j]= num[i]; num[i]=temp; } } } temp=(1000*num[0]+100*num[1]+10*num[2]+num[3])-(1000*num[3]+100*num[2]+10*num [1]+num[0]); return temp; } int getB(int num){ int a,b,c,d; a=num%10; b=num%100/10; c=num%1000/100; d=num/1000; return up(a,b,c,d); } int istrue(int num[10000],int k,int temp){ for(int i=0;i<temp;i++){ if(num[i]==k) return 0; } return 1; } void main() { int num ,t=0,count=1; //count记录下不重复的有多少 num[t]=X; while(istrue(num,getB(num[t]),t+1)){ //此处为伪代码,未实现 count++; //count记录了访问的次数 t++; num[t]=getB(num[t-1]); } num[count]=getB(num[t]); //cout<<count<<endl; for(int i=0;i<count;i++) cout<<num[i]<<"->"; cout<<num[count]<<endl; }
程序截图:
补录:如果有观众朋友们对上述代码不清楚的地方,欢迎前来指教
相关文章推荐
- shell 新学命令整理
- API
- HDU 1290 献给杭电五十周年校庆的礼物(空间分割)
- Cisco vWSA (virtual Web Security Appliance)
- UVA 11354 Bond(最小生成树+lca+倍增求祖先节点)
- Python一日一练06----怒刷点击量pyqt5版
- Swift 结构体
- GUI编程笔记(java)01:GUI和CLI
- hdu 3714 Error Curves(三分)
- 关于移动端键盘弹出
- HDU 2674 N!Again(规律)
- 技术债务偿还计划
- IOS高德地图开发
- CPU与内存的那些事
- 关闭看门狗
- android---护眼灯和兼容性高的手电筒实现
- 设计模式 - Template Method
- C# 、winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示
- HDU 1568 Fibonacci(数学 递推式)
- C++异常捕获