原题链接:
题意:
问从 1 ~ n 有多少个数能使,它减去它的数字和 s。
解法:
可以发现,如果 num 满足条件,那么 num + 1 一定也满足条件,所以就有单调性,可以二分。
但是我们也可以直接从 s 枚举到 n,因为 num 的值不会太大。
Code :
# include <bits/stdc++.h>
# define int long long
# define pb push_back
# define db double
using namespace std;
int n, s;
bool chk(int x){
int ret = 0, num = x;
while (x){
ret += x % 10;
x /= 10;
}
return (num - ret) >= s;
}
signed main(){
scanf("%lld%lld", &n, &s);
for (int i = s;i <= n;i++){
if (chk(i)){
printf("%lld", n-i+1);
return 0;
}
}
puts("0");
return 0;
}