1019 数字黑洞 (20 分)C语言 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从6767开始,将...
1019 数字黑洞 (20分) C/C++ 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从6767开始,将...
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从6767开始,将得到 7766 - 6677 = 1089 981...
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从6767开始,将得到 7766-6677=10899810-0189=96...
一是每个数字都要按照四位数字输出,比如1000 - 0001 = 0999,不然的话会判错, 二是6174要拿出来单独判断,这里为了可读性我没有整合。 #include<stdio.h> void upsort(int *a){ //冒泡排序 int mid; for(int i = 0;i<4;i++) for(int j = 0;j<3;j++) if(a[j]>a[j+1]){ mid=a[j]...
简介:给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。
原题链接:PAT (Basic Level) Practice (中文)1019 数字黑洞 做前思考 1、多次qsort排序和atoi转整数即可。 做后总结 1、测试二,三,四:输入不足4位。 2、测试五:读入6174也要有输出。 #include<stdio.h>#include<stdlib.h>intcmp1(constvoid*a,constvoid*b){return*(char*)a-*(char*)b;}intcmp2(cons...
#include<iostream>#include<algorithm>#include<cstdio>usingnamespacestd;boolcmp(inta,intb){returna>b; }voidto_array(intn,intnum []) {for(inti=0;i<4;i++) { num[i]=n%10; n/=10; } }intto_number(intnum[])//void to_number(int num[],int n)这样写就错了;{intsum=0;for(inti...
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫 Kaprekar 常数。
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫 Kaprekar 常数。