zoukankan      html  css  js  c++  java
  • 编程题目: PAT 1019. 数字黑洞 (20)

    1019. 数字黑洞 (20)

    时间限制
    100 ms
    内存限制
    32000 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。

    例如,我们从6767开始,将得到

    7766 - 6677 = 1089
    9810 - 0189 = 9621
    9621 - 1269 = 8352
    8532 - 2358 = 6174
    7641 - 1467 = 6174
    ... ...

    现给定任意4位正整数,请编写程序演示到达黑洞的过程。

    输入格式:

    输入给出一个(0, 10000)区间内的正整数N。

    输出格式:

    如果N的4位数字全相等,则在一行内输出“N - N = 0000”;否则将计算的每一步在一行内输出,直到6174作为差出现,输出格式见样例。注意每个数字按4位数格式输出。

    输入样例1:
    6767
    
    输出样例1:
    7766 - 6677 = 1089
    9810 - 0189 = 9621
    9621 - 1269 = 8352
    8532 - 2358 = 6174
    
    输入样例2:
    2222
             依要求处理即可,注意输出格式的控制,以及结束条件的控制。

    /*
    http://pat.zju.edu.cn/contests/pat-b-practise/1019
    */
    
    #include<iostream>
    #include<vector>
    #include<algorithm>
    #include<iomanip>
    using namespace std;
    
    int main()
    {
    	int N,N1,N2,result;//分别表示输入值,重组之后的两个值,以及相见之后的节结果
    	vector<int> v;
    	cin >> N;
    	result = N;
    	bool flag = true;
    	while(flag)
    	{
    		v.clear();
    		for(int i =0;i<4;i++)
    		{
    			v.push_back(result%10);
    			result /=10;
    		}
    
    		sort(v.begin(),v.end());//从小到大排序
    		N1 = v[3]*1000 + v[2]*100 + v[1]*10 + v[0];
    		N2 = v[0]*1000 + v[1]*100 + v[2]*10 + v[3];
    		result = N1 - N2; 
    		
    		cout<<setfill('0')<<setw(4)<<N1<<" - "<<setfill('0')<<setw(4)<<N2<< " = "<<setfill('0')<<setw(4)<<result<<endl; //设置好输出格式
    		if(result == 6174 || result ==0)
    			flag = false;	
    	}
    	
    	system("pause");
    	return 0;
    }




  • 相关阅读:
    编译用到boost相关的东西,问题的解决;以及和googletest库
    看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
    centos5 升级到centos6
    Go vs Erlang
    Graphviz
    Oracle相关安装经验总结
    学习erlang书籍
    sublime使用总结
    List集合五种遍历方式
    nginx常用命令
  • 原文地址:https://www.cnblogs.com/f8master/p/3826053.html
Copyright © 2011-2022 走看看