Прочитаємо число як рядок, а цифри і як символи. Замінимо в рядку всі входження символу на символ . Потім виведемо отриманий рядок, видаливши провідні нулі. Якщо підсумковий рядок складається тільки з нулів, слід вивести один нуль.
Відзначимо, що результуюче число може не вміщатися в тип int. Наприклад, якщо n = 1000000000~(10^9), a = 1, b = 9, то результатом буде число 9000000000~(9 \cdot 10^9).
Реалізація алгоритму
Число як рядок зберігаємо в масиві .
char s[100];Читаємо число як рядок, числа і як символи.
scanf("%s %c %c",s,&a,&b);Замінюємо в рядку всі входження символу на символ .
for (i = 0; i < strlen(s); i++)
if (s[i] == a) s[i] = b;Перетворюємо рядок в число типу long long.
res = atoll(s);Виводимо відповідь.
printf("%lld\n", res);Реалізація алгоритму — string
Читаємо вхідні дані: — рядок, і — символи.
cin >> s >> a >> b;Замінюємо в рядку всі входження символу на символ .
replace(s.begin(), s.end(), a, b);Перетворюємо рядок в число типу long long.
res = stoll(s);Виводимо відповідь.
cout << res << endl;Java реалізація
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
String s = con.next();
char a = con.next().charAt(0);
char b = con.next().charAt(0);
s = s.replace(a,b);
int flag = 0;
for(int i = 0; i < s.length(); i++)
if (s.charAt(i) != '0')
{
s = s.substring(i);
flag = 1;
break;
}
if (flag == 0) s = "0";
System.out.println(s);
con.close();
}
}Python реалізація
Читаємо вхідні дані у вигляді рядків.
s, a, b = input().split()Замінюємо в рядку всі входження символу на символ .
s = s.replace(a, b)Перетворюємо рядок в ціле число і виводимо результат.
print(int(s))