1069 The Black Hole of Numbers(字符串处理)

1069 The Black Hole of Numbers (20 分)

For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in non-increasing order first, and then in non-decreasing order, a new number can be obtained by taking the second number from the first one. Repeat in this manner we will soon end up at the number 6174 -- the black hole of 4-digit numbers. This number is named Kaprekar Constant.

For example, start from 6767, we'll get:

7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
... ...
Given any 4-digit number, you are supposed to illustrate the way it gets into the black hole.

Input Specification:

Each input file contains one test case which gives a positive integer N in the range (0,10​4​​ ).

Output Specification:

If all the 4 digits of N are the same, print in one line the equation N - N = 0000. Else print each step of calculation in a line until 6174 comes out as the difference. All the numbers must be printed as 4-digit numbers.

Sample Input 1:

6767
Sample Output 1:
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174

Sample Input 2:

2222

Sample Output 2:

2222 - 2222 = 0000

分析

此题考查字符串的处理,本题不难,主要要掌握c语言中常用的字符串函数。
注:strcpy函数 函数声明 char* strcpy( char* dest, const char* src )

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main() {
   int n;
   scanf("%d",&n);
   char s[5];
   sprintf(s,"%04d",n);
   sort(s,s+4,greater<char>());
   if(s[0]==s[3]) printf("%s - %s = 0000\n",s,s);
   else {
       while(1) {
           char s1[5];
           strcpy(s1,s);
           sort(s,s+4);
           int a1,a2;
           sscanf(s1,"%d",&a1);
           sscanf(s,"%d",&a2);
           int ans=a1-a2;
           printf("%04d - %04d = %04d\n",a1,a2,ans);
           if(ans==6174) break;
           sprintf(s,"%04d",ans) ;
           sort(s,s+4,greater<char>());
       }
   }
   return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,150评论 0 10
  • 沪指盘中创熔断后新高,但又回落震荡,而题材股和白马股一片绿。 不知道是不是这半个月看汉师一直力荐白马,昨天就抱着试...
    投资门内汉阅读 1,111评论 0 0
  • 此一去 黄浪涛涛 沧海茫茫 宇宙癫狂 融入砂 融入尘 融入片片叶 幻化千城骨肉 万古血脉 荒蛮与文明 腐朽与新生 ...
    林癫阅读 864评论 0 2
  • 听了这个故事我哭了! 一位月薪3500元的农民工爸爸,给自己的儿子买了一套120多平米的结婚房子,每月替儿子还按揭...
    de7c69bfb64b阅读 1,891评论 0 1
  • 前面的话 总觉得诗意和哲理之类的,是零碎的、断续的、明灭的。多有两万七千行的诗剧,峰峦重叠的逻辑著作,歌德、黑格尔...
    Ms倩阅读 5,007评论 0 0