标签:while sum tps tar element return can div tmp
链接:https://ac.nowcoder.com/acm/contest/318/G
对于每一个 c,找到一组 a,b ,使 f(a) + f(b)最大 且 a + b = c,输出这个f(a) + f(b)(0≤a,b≤c)。
在第一个样例中,可以选择 a = 17,b = 18,这样得到的f(a) + f(b)值最大为 17。
在第二个样例中, 可以选择 a = 5000000001,b = 4999999999.这样得到的f(a) + f(b)值最大为 91。
思路: 让其中一个最大 求出结果就是最大的
#include<bits/stdc++.h> using namespace std; long long solve(long long n) { long long sum=0; while(n){ sum+=n%10; n/=10; } return sum; } int main() { long long n; while(scanf("%lld",&n)==1){ long long t=n; int len=0; while(t){ len++; t/=10; } long long Sum=0; for(int i=0;i<len-1;i++){ Sum=Sum*10+9; } long long Sum1=n-Sum; printf("%lld\n",solve(Sum)+solve(Sum1)); } return 0; }
标签:while sum tps tar element return can div tmp
原文地址:https://www.cnblogs.com/chenchen-12/p/10166059.html