《递归递推练习》J
来源:互联网 发布:阿里云免费镜像 编辑:程序博客网 时间:2024/05/17 00:03
原题
Description
任意一个4位自然数N(N不能是4个数字一样,如1111、2222、….9999是不可以的,N也不能是6174),将组成自然数N的4个数字重新排列,形成一个最大数和最小数,最大数和最小数相减,其差还是自然数,将差的各数字再重新排列,又形成一个最大数和最小数,最大数和最小数相减,其差还是自然数。反复进行,直到差是一个神秘数6174(数学黑洞)结束。Input
输入数据有多组,每组占一行,每行包含一个4位自然数N。输入文件直到EOF为止!Output
对每组输入,输出有2行。第一行是所有的差,以空格分隔,最后一个数后也有空格;第二行是差的个数。思路
把整数拆开放到数组中,对数组排序,即得到由各位数字排列得的最大值和最小值。最大值减最小值得到下一个数,进入循环。直到得到6174,退出循环。AC代码
#include<bits/stdc++.h>using namespace std;int main(){ int a[4]={0}; int i,max=0,min=0,j=1,n; while(scanf("%d",&n)!=EOF) { while(1) { for(i=0;i<4;i++) { a[i]=n%10; n=n/10; } sort(a,a+4); max=0;min=0; for(i=0;i<4;i++) { min=min*10+a[i]; } for(i=3;i>=0;i--) { max=max*10+a[i]; } n=max-min; if(n==6174) { cout<<n<<" "<<endl; cout<<j<<endl; j=1; break; } else { cout<<n<<" "; j++; } } }}
0 0
- 递推递归练习 J
- 递推递归练习J
- 《递归递推练习》J
- 递归递推练习 J
- 递归递推练习 J
- 递推递归练习 J 数学黑洞
- 递推递归练习J数学黑洞
- 递推递归练习--J(数学黑洞)
- ACM递归递推练习 Problem J
- 递归递推练习——J
- 递推递归-J
- 递推递归--J
- ACM递推递归练习J 数学黑洞
- 递归递推练习―J―数学黑洞
- ACM(递归递推—J)
- 递推递归练习 A
- 递推递归练习 B
- 递推递归练习 C
- PHP 实现桶排序
- L2-019. 悄悄关注
- spring手动事务
- TextView实现跑马灯的效果
- 部署 instance 到 VXLAN
- 《递归递推练习》J
- L2 Population 原理
- 获取汉字的首字母
- PHP 实现二分查找
- Connections in Galaxy War (逆向并查集)
- javaScript实现验证码功能
- 安卓图片加载汇总(Glide、Picasso)
- 135-大写转换服务器
- 配置 L2 Population