PAT甲级1069 The Black Hole of Numbers:[C++题解]模拟、6174
生活随笔
收集整理的這篇文章主要介紹了
PAT甲级1069 The Black Hole of Numbers:[C++题解]模拟、6174
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目分析
- 題目來源
題目分析
來源:acwing
分析: 注意特判 6174這個數:if(n == 6174) printf("7641 - 1467 = 6174\n");
- 判斷n位數各位相同,比如2222.
- 取出各位數,放入vector。
ac代碼
#include<bits/stdc++.h> using namespace std;//判4位相同 bool check(int n){int t = n %10;n /= 10;int cnt = 0;while(n){if( n %10 ==t) cnt++;n /= 10;}if(cnt == 3) return true;return false; } int main(){int n;cin >>n;int tmp = n;int flag =0;if(check(n)) flag = 1;while(!flag && tmp != 6174 ){vector<int> num;int a = 0, b = 0;while(tmp) num.push_back(tmp%10), tmp /= 10;while(num.size() <4) num.push_back(0);sort(num.begin(),num.end());for(int i = 3; i >= 0; i--){cout<< num[i];a = 10*a +num[i];}cout<<" - ";for(int i = 0; i<4; i++){cout<<num[i]; b = 10*b + num[i]; } tmp = a -b;cout<<" = ";printf("%04d\n",tmp);}if(n == 6174) printf("7641 - 1467 = 6174\n");if(flag) printf("%04d - %04d = 0000\n",n,n);}題目來源
PAT甲級1069 The Black Hole of Numbers
https://www.acwing.com/problem/content/1557/
總結
以上是生活随笔為你收集整理的PAT甲级1069 The Black Hole of Numbers:[C++题解]模拟、6174的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT甲级1065 A+B and C
- 下一篇: PAT甲级1121 Damn Singl