pat 1069

    xiaoxiao2021-03-26  12

    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;//求出个位 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("d - d = d\n",a,b,a-b); number = a - b; }while(number!=6174); } /** 6767 6174 **/4、题目坑点

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

    转载请注明原文地址: https://ju.6miu.com/read-600391.html

    最新回复(0)