题解 | 数位差与数值和的构造

数位差与数值和的构造

https://www.nowcoder.com/practice/36f3593e553c4c67987abf88a3d4d105

C++ 找规律额

#include <cmath>
#include <iostream>
using namespace std;

int main() {
    int t, n;
    cin >> t;
    while (t--) {
        cin >> n;
        if (n%2==0) cout << n/2 << ' ' << n/2 << endl;
        else if (n/2%10!=9) cout << n/2 << ' ' << n-n/2 << endl;
        // 19 39 999 特殊处理 -> 末位为 4 5 交错 首位为 /2
        else {
            int p=n;
            int i=0, cnt=0, f=1;
            while (p%10==9 && p/10) {
                if (f==-1) i = 10*i+4;
                else i = 10*i+5;
                p /= 10; cnt++; f=-f;
            }
            i += p/2*pow(10,cnt);
            cout << i << ' ' << n-i << endl;
        }
    }

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务