[CF509C]Sums of Digits
Sums of Digits
题解
由于要求逐次递增,所以只要求出比
大的第一个满足条件的数即可。
首先确定数字位数,通过一个全为9的数即可找到当前位数时,由于数位和是连续的,所以区间中一定有数满足条件,注意许判断是否大于上一个数,然后通过数位枚举即可。
源码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> pii;
int n,a[505],s[505],t[505],len;
void calc(int x,int l){
memset(s,0,sizeof(s));len=0;x--;s[l]=1;
while(x>=9&&len<l)s[++len]=9,x-=9;
if(x)s[++len]+=x;len=l;
}
void print(){for(int i=len;i>0;i--)printf("%d",s[i]);puts("");}
bool c

浙公网安备 33010602011771号