Следующее число
Дано число $n$. Необходимо вывести число $n+1$.
Входные данные:
Дано неотрицательное целое число $n$. Известно, что количество цифр в числе не превышает $10^6$.
Выходные данные:
Вывести число $n+1$.
Тесты
# | ВХОДНЫЕ ДАННЫE: | ВЫХОДНЫЕ ДАННЫЕ: |
---|---|---|
1 | 45654 | 45655 |
2 | 5799 | 5800 |
3 | 2131312 | 2131313 |
4 | 0 | 1 |
5 | 699999 | 700000 |
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.util.Scanner; public class Main { public static void main(String[] args) { String s = new Scanner(System.in).next(); StringBuilder sb = new StringBuilder(); int n = s.length(), c = 1; for(int i=n-1; i>-1; i--) { int v = s.charAt(i) - '0' + c; c = v / 10; sb.append(v%10); if(c == 0) { if(i > 0) sb.append(new StringBuilder(s.substring(0, i)).reverse()); break; } } if(c == 1) sb.append(1); System.out.println(sb.reverse().toString()); } } |
Решение задачи:
Для решения данной задачи будем использовать строки, так как заданное число превышает максимально возможное значение любых числовых переменных. Далее создаём функцию, которая будет определять всё написанное в строке до и после символа $+$ как подстроку, после чего создаём функцию, которая суммирует эти подстроки. Исполнив этот алгоритм получим правильный ответ.