原题链接:
Problem - C - Codeforces
题意:
问从 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;
}