Упражнения на Java: если даны два неотрицательных целых числа, представленных в виде строки, вернуть их сумму
Java Basic: упражнение 189 с решением
Напишите Java-программу для заданных двух неотрицательных целых чисел num1 и num2, представленных в виде строки, верните сумму num1 и num2.
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.*;
public class Solution {
public static void main(String[] args) {
String n1 ="123";
String n2 ="456";
System.out.println("'" + n1 + "'" + " + " + "'" + n2 + "'" + " =" + addStrings(n1, n2));
}
public static String addStrings(String n1, String n2) {
int[] x = str_num(n1);
int[] y = str_num(n2);
int[] sum = new int[Math.max(x.length, y.length) + 1];
int z = 0;
int index = sum.length - 1;
int i = 0;
int j = 0;
while (index >= 0) {
if (i < x.length) {
z += x[i++];
}
if (j < y.length) {
z += y[j++];
}
sum[index--] = z % 10;
z /= 10;
}
StringBuilder sb = new StringBuilder(sum.length);
for (i = (sum[0] == 0 ? 1 : 0); i < sum.length; ++i) {
sb.append(sum[i]);
}
return sb.toString();
}
private static int[] str_num(String num) {
char[] digits = num.toCharArray();
int[] number = new int[digits.length];
int index = number.length - 1;
for (char digit: digits) {
number[index--] = digit - '0';
}
return number;
}
}
Пример вывода:
«123» + «456» = 579
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы найти все начальные индексы анаграмм данной строки в другой данной строке.
Далее: Напишите программу на Java, чтобы найти недостающую строку из двух заданных строк.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code