51nod
题目链接
传说中的数位DP
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
int main(){
string str;
cin>>str;
int res = 0;
for(int i = 0; i < str.size(); i++){
int l = 0, r = 0, p = 1;
for(int j = 0; j < i; j++) l = l*10 + str[j] - '0';
for(int j = i+1; j < str.size(); j++){
r = r*10 + str[j] - '0';
p *= 10;
}
res += l*p;
if(str[i] == '1') res += r + 1;
else if(str[i] > '1') res += p;
}
cout<<res<<endl;
return 0;
}