题解:P12870 [蓝桥杯 2025 国 Python A] 铺设能源管道

· · 题解

题解:P12870 [蓝桥杯 2025 国 Python A] 铺设能源管道

一道十分简单的题。

思路简述

既然要各数位之和最小,那么自然是开头为 1 后面一堆 0 的数各数位之和最小,即各数位之和为 1 的数就是我们所需寻找的答案。由于可能存在多种答案,题目要求我们要找到最小的答案。那么对于一个 a 位的数 n,它所对的最优的管道铺设长度 m 就为一个 1 后面跟 a0。此外,如果 n 本身就符合各数位之和等于 1,直接输出 n 即可。

代码呈现

C++

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
signed main(){
    cin>>n;
    if(n%10==0||n==1){//如果本身各数位之和就为1则直接输出
        cout<<n;
        return 0;
    }
    cout<<1;//最高位为1 
    while(n){
        cout<<0;//剩下的都是0 
        n/=10;
    }
    return 0;
}