0pts求调
查看原帖
0pts求调
1273558
fly__sheep楼主2025/7/1 08:50
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1e5+5;
#define ll long long
#define int long long
int n,m[maxn],len,ans[10];
int dp[maxn],ten[20];
void solve(int n){
	while(n){
		m[++len]=n%10;
		n/=10;
	}
}
signed main(){
	cin>>n;
	ten[0]=1;
	for(int i=1;i<=25;i++){
		dp[i]=dp[i-1]*10+ten[i-1];
		ten[i]=ten[i-1]*10;
	}
	solve(n);
	for(int l=len;l>=1;l--){
		int t=m[l];
		for(int i=1;i<=9;i++)ans[i]+=dp[l-1]*t;
		for(int i=1;i<t;i++)ans[i]+=ten[l-1];
		ll x=0;
		for(int i=l-1;i>=1;i--)x=x*10+m[i];
		ans[t]+=x+1;
	}
	ll res=0;
	for(int i=1;i<=9;i++)res+=ans[i]*i;
	cout<<res;
	return 0;
}


2025/7/1 08:50
加载中...