Определить сумму чисел ,не превосходящих заданного числа n ,содержащих только нечетные цифры ,
105
155
Ответы на вопрос:
#include < iostream> #include < ctime> //нужно для генерации n - значных чисел using namespace std; int getrandval(int n); //функция генерирует случайное n-ое число //функция вернёт массив цифр составляющих число val //переменная n будет содержать число цифр в массиве //флаг bgetarray определяет записывать ли разряды в //массив или лишь ограничиться подсчётом разрядов числа int * splitvalue(int val, int & n, bool bgetarray); //функция проверяет состоит ли число только из нечётных чисел bool isvalueconsistonlynooddnumbers(int val); int main() { int i; int m; //будет содержать число чисел для анализа int n; //будет содержать число разрядов для чисел int sum; //будет содержать сумму чисел int cnt; //будет содержать кол-во n-значных чисел //состоящих только из нечётных значений int *arr = null; //указатель на массив с n-значн числами while(true) { system("cls"); cout< < "enter number values in array : "; cin> > m; cout< < "enter n digits in values : "; cin> > n; arr = new int[m]; cout< < "generated array of values\n"; for(i = 0; i < m; i++) cout< < (arr[i] = getrandval(n))< < endl; cout< < "values in array with only odd numbers\n"; for(sum = (cnt = (i = 0)); i < m; i++) { if(isvalueconsistonlynooddnumbers(arr[i])) { cout< < arr[i]< < endl; sum = sum + arr[i]; cnt = cnt + 1; } } delete [] arr; if(! cnt) cout< < "array not contain values which consist" < < " only from no-odd numbers\n"; else { cout< < "sum of values which consist" < < " only from no-odd numbers is " < < sum< < endl; //разбиваем значение суммы на разряды arr = splitvalue(sum, n, true); for(cnt = (i = 0); i < n; i++) { if(! isvalueconsistonlynooddnumbers(arr[i])) cnt = cnt + 1; } cout< < "given sum contains from "< < cnt< < " odditive numbers\n"; delete [] arr; } system("pause"); } return 0; } int getrandval(int n) { int val = 0; int ndigits = 0; //будем продолжать генерацию //пока не сгенерируем случ //n-значное число while(ndigits ! = n) splitvalue((val = rand()%rand_max), ndigits, false); return val; } int * splitvalue(int val, int & n, bool bgetarray) { int * arr = null; //указатель на массив с числа val if(val < 0) val *= -1; //знак числа нам не нужен //подсчитываем число разрядов в числе int i, buf = val; for(n = 0; 0 < buf; n++) buf = buf / 10; //выделяем память под массив чисел if(bgetarray) { arr = new int[n]; for(i = 0; 0 < val; i++) { //записываем в массив цифры разрядов числа arr[i] = val % 10; val = val / 10; } } return arr; } bool isvalueconsistonlynooddnumbers(int val) { bool bret = true; int ndigits = 0; int * array = splitvalue(val,ndigits,true); for(int i = 0; i < ndigits & & bret; i++) { if(array[i]%2 == 0) bret = false; } delete [] array; return bret; }
№1-2 var x, t, f, l, sum, sum2: integer; begin write('введите x: '); readln(x); if ( x < 10000 ) or ( x > 99999 ) then writeln('ошибка. число не пятизначное! ') else begin l : = x mod 10; t : = (x div 1000 mod 10); sum : = l + t; f : = (x div 10 mod 10); sum2 : = t + f; writeln('сумма второй и последней цифры: ', sum); writeln('сумма второй и четвертой цифры: ', sum2); end; end.№3var a, b, c, rez: integer; beginwrite('введите первое число: '); readln(a); write('введите второе число: '); readln(b); write('введите третье число: '); readln(c); rez : = 0; if a mod 2 = 0 then inc(rez); if b mod 2 = 0 then inc(rez); if c mod 2 = 0 then inc(rez); writeln('количество четных чисел: ', rez); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
мария56438410.09.2022 19:30
-
77Stranik7721.01.2021 23:56
-
Slipknot5547987654411.03.2021 04:42
-
K1231108.02.2021 03:52
-
ibondarenk201306.06.2020 00:16
-
2006лера26.11.2022 13:52
-
GGNOOB77708.08.2022 12:34
-
nazmiburkanova708.09.2020 04:36
-
Sergay12101.09.2022 09:18
-
ekaterina123sve23.08.2020 02:41
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.