//
// main.cpp
// PATA1049
//
// Created by Phoenix on 2018/2/13.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
int main(int argc, const char * argv[]) {
int n, num[15], a[15], b[15];
scanf("%d", &n);
int k = 0, ans = 0, t = 1, m = n;
while(n) {
b[k] = n / 10;
a[k] = m % t;
t *= 10;
num[k++] = n % 10;
n /= 10;
}
t = 1;
for(int i = 0; i < k; i++) {
if(num[i] > 1) ans += (b[i] + 1) * t;
else if(num[i] == 1) ans += b[i] * t + a[i] + 1;
else ans += b[i] * t;
t *= 10;
}
printf("%d", ans);
return 0;
}
PATA1049题解
最新推荐文章于 2022-03-17 20:06:18 发布
本文提供了一个解决PATA1049问题的C++实现方案,通过数位DP算法来处理涉及数字操作的问题。该算法能够有效地处理给定范围内数字的各种属性查询,例如求解特定条件下数字的个数或者总和等问题。
335

被折叠的 条评论
为什么被折叠?



