Задача
К Василию приехали два его друга с отличной новостью: они выиграли в лотерею [latex]n[/latex] рублей. Поскольку лотерейный билет был получен на сдачу во время общей закупки в магазине, то его принадлежность определить не удалось. Было решено разделить выигрыш поровну. Василий хотел бы узнать, можно ли честно разделить выигрыш.
Входные данные
Одно натуральное число [latex]n[/latex], количество знаков которого не превышает 255.
Выходные данные
Вывести «YES», если входное число делится на 3, и «NO» если не делится.
Код string
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <string> using namespace std; int main() { string s; cin>>s; int a=0; for(int i=0;i<s.size();i++){ a+=s[i]-'0'; } if(a%3==0)cout<<"YES"; else cout<<"NO"; return 0; } |
Тесты
№ | Входные данные | Выходные данные |
1 | 33 | YES |
2 | 0 | YES |
3 | 1 | NO |
4 | 1234567890987654321 | YES |
5 | 12345678901 | NO |
Решение
Для начала вводим строку, где будет хранится наше число. Будем считать сумму цифр числа, т.к. число делится на 3, если сумма его цифр делится на 3. Для этого создаем переменную [latex]a[/latex] в которой будет хранится сумма цифр. Запускаем цикл от 0 до размера строки (количество цифр в числе). В цикле суммируем цифры числа, отнимая от него код символа 0, т.к. в [latex]string[/latex] записывается не число, а его код его символа. Далее проверяем — если сумма цифр делится по модулю на 3, то выводим «YES», если нет — то «NO».
Ссылка на код ideone.
Ссылка на решение e-olymp.
Код c-string
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <cstring> using namespace std; int main() { const int MAX_SIZE = 256; char *c = new char [MAX_SIZE]; cin.getline (c,MAX_SIZE); int a=0; for(int i=0;i<strlen(c);i++){ a+=c[i]-'0'; } if(a%3==0)cout<<"YES"; else cout<<"NO"; return 0; } |
Решение
Алгоритм решения такой же как и для [latex]string[/latex], только вместо библиотеки [latex]string[/latex] подключаем библиотеку [latex]cstring[/latex], немного изменяем ввод и используем функцию [latex]strlen()[/latex] вместо [latex]size()[/latex].
Ссылка на код ideone.
Ссылка на решение e-olymp.