pat 1069

来源:互联网 发布:免费淘宝装修软件 编辑:程序博客网 时间:2024/05/19 19:14

1、题目链接

2、题意分析

(1)题意:如果当前数不是6174,则进行适当的变化,直到得出的数字是6174

(2)分析:对于给出的数字,进行排序,然后执行减法操作,直到得到6174

3、源代码

#include <stdio.h>#include <algorithm>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); } /**67676174**/
4、题目坑点

(1)当输入的数是6174时,该怎么办?所以这里使用do-while()循环



0 0
原创粉丝点击