pat 1069(patekphilippe手表)
1、题目链接
2、题意分析
(1)题意:如果当前数不是6174,则进行适当的变化,直到得出的数字是6174
(2)分析:对于给出的数字,进行排序,然后执行减法操作,直到得到6174
3、源代码
#include
#include
using namespace std;
int main(){
int number ;
scanf("%d",&number);
int i ;
int array[4];//用来存储四位数
do{
array[0] = number%10;//求出个位
array[1] = (number/10) % 10;//求出十位
array[2] = (number/100) % 10;//求出百位
array[3] = number /1000;//千位
if(array[0] == array[1] && array[1] == array[2] && array[2] == array[3]){
printf("%d - %d = 0000\n",number,number);
return 0;
}
//递增排序
sort(array,array+4);
int a = array[3] * 1000 +array[2] * 100 + array[1] * 10 +array[0];
int b = array[0] * 1000 +array[1] * 100 + array[2] * 10 +array[3];
printf("%04d - %04d = %04d\n",a,b,a-b);
number = a - b;
}while(number!=6174);
}
/**
6767
6174
**/4、题目坑点
(1)当输入的数是6174时,该怎么办?所以这里使用do-while()循环
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~