The number on the board
java
有一天,一个人随手写了一个很大的数字n,但是热爱做题的憨憨很快把它想成了一个题目,
他希望这个数字在不改变数字位数的情况下,尽可能少的改变几位,让它每一位的数字加和不小于k。这对憨憨
实在太简单了,他把问题留给了你!
Input
第一行包含一个整数 k (1 ≤ k ≤ 109).
第二行包含一个整数 n (1 ≤ n < 10000000).
数据保证n没有前导0,同时数据保证存在答案。
Output
Print the minimum number of digits in which the initial number and n can differ.
Example
Input
3
11
Output
1
Input
3
99
Output
0
Note
在第一个样例中,数字可以改为 12.所以更改了1位
在第二个样例中,每位之和已经大于 k. 不需要再改变,所以更改后的数字为 n.
下面展示一些 内联代码片
。
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int k=0,p=0,q=0,l=0,t=0;
int sum=0;
int [] b = new int[100000];
Scanner scanner = new Scanner(System.in);
k =scanner.nextInt();
String string = scanner.next();
char a[] = string.toCharArray();
int length= a.length;
for (int i=0;i<length;i++)
{
b[i] = a[i] - '0';
sum+=b[i];
}
Arrays.sort(b,0,length);
if(sum>=k) {
System.out.println(0);
}else {
p=k-sum;
while(q<p) { //
q+=9-b[t];
t++;
}
System.out.println(t);
}
}
}