Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
1

Создание цикла с циклами, где их количество задается с клавиатуры

21.11.2013, 03:49. Просмотров 1005. Ответов 12
Метки нет (Все метки)

Добрый вечер!
Сразу к делу...
Человек пишет число (к примеру 7)...
Нужно сделать так чтобы создались 7 циклов (один внутри другого) со своими переменными и т.д. и в результате посчитало суму всех чисел с перебора...
Помогите пожалуйста(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 03:49
Ответы с готовыми решениями:

Работа с файлом, путь к которому задается с клавиатуры
Как сделать так чтобы можно было указать имя файлу с клавиатуры и потом...

Найти наибольший элемент в матрице, размерность матрицы задается с клавиатуры
Найти наибольший элемент в матрице, размерность матрицы задается с клавиатуры

Распечатать все строки файла, имеющие длину, которая задается с клавиатуры
Написать программу, которая открывает в текстовом режиме произвольный текстовый...

Составить программу которая находит наименьший элемент в матрице. Размерность матрицы задается с клавиатуры
Составить программу которая находит наименьший элемент в матрице. Размерность...

Выдать сообщение «Привет, k-классник», где k задается с клавиатуры
Цель: Выполнить на компьютере программу, с использованием оператора выбора, и...

12
IrineK
Заблокирован
21.11.2013, 03:53 2
Сформулируйте задачу четко - как сказано в условии.
0
bradobrei
Продам уран 238U
120 / 120 / 126
Регистрация: 22.01.2013
Сообщений: 298
21.11.2013, 07:16 3
задание канеш малая наркомания
C++
1
case
тебе в помощь
0
Boleon
Guardian of Asgaard
373 / 316 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
21.11.2013, 11:09 4
Цитата Сообщение от madonzy Посмотреть сообщение
...Нужно сделать так чтобы создались 7 циклов...

присоединяюсь к IrineK'у - сформулируй четкое условие.
0
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
21.11.2013, 12:48  [ТС] 5
Без проблем
Есть функция S(k,i) которая считает количество k-разрядных чисел, сумма цифр которых равна i. Например, S(2,3)=4, так как существует 4 двуразрядных числа (03,12,21,30), сумма цифр которых равна 3.
Человек задает эти 2 параметра (k,i) как это можно сделать?
0
kazak
3061 / 2382 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
21.11.2013, 16:54 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
int SumDigits (int number)
{
   int sum = 0;
 
   do
   {
      sum += number % 10;
   }while (number /= 10);
 
   return sum;
}
 
int S (int dig, int sum)
{
   int i, count = 0, end = 10;
 
   if (dig < 1)
      return 0;
 
   for (i = 1; i < dig; i++)
      end *= 10;
 
   for (i = 0; i < end; i++)
      if ( SumDigits (i) == sum)
         count++;
 
   return count;
}
0
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
21.11.2013, 20:13  [ТС] 7
можете пожалуйста скоментировать свой код?
0
kazak
3061 / 2382 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
21.11.2013, 20:35 8
Цитата Сообщение от madonzy Посмотреть сообщение
можете пожалуйста скоментировать свой код?
скоментировать нет, а прокомментировать пожалуйста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*Функция SumDigits вычисляет сумму цифр числа, переданного ей в качестве аргумента*/
int SumDigits (int number)
{
   int sum = 0; /*Переменная в которой будет накапливаться сумма*/
 
   do
   {
      sum += number % 10; /*Прибавляем к sum остаток от деления number на 10 (т.е. последнюю цифру)*/
   }while (number /= 10); /*Делим number на 10, целую часть от деления помещаем в number же. Повторяем все до
                                       тех пор, пока number не станет равным нулю*/
 
   return sum; /*Возвращаем найденную сумму*/
}
 
/*Функция S находит количество чисел разрядностью dig, сумма цифр которых равна sum*/
int S (int dig, int sum)
{
   int i, count = 0, end = 10; /*Объявляем переменные для счетчика цикла, счетчика найденных чисел
                                           и для верхнего предела цикла*/
 
   if (dig < 1) /*Проверяем разрядность числа, если она меньше единицы возвращаем 0*/
      return 0;
 
   /*Последнее число разрядности n будет равно 10^n - 1. В первом цикле находим 10^n, -1 представим во втором 
      цикле как строгое неравенство i < end*/
   for (i = 1; i < dig; i++)
      end *= 10;
 
   for (i = 0; i < end; i++) /*В цикле перебираем все числа*/
      if ( SumDigits(i) == sum) /*Если сумма цифр очередного числа равна sum*/
         count++; /*Увеличиваем счетчик чисел на 1*/
 
   return count; /*Возвращаем найденное количество чисел*/
}
0
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
21.11.2013, 20:44  [ТС] 9
Спасибо огромное...но у меня ничего не выходит((
Как решить задачу?
Написать программу определения количества 2*N -значных билетов, у которых сумма первых N десятичных цифр равна сумме N последних десятичных цифр; при этом N -произвольное натуральное число.
0
kazak
3061 / 2382 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
21.11.2013, 20:58 10
Цитата Сообщение от kazak Посмотреть сообщение
C
1
2
3
for (i = 0; i < end; i++) /*В цикле перебираем все числа*/
* * * if ( SumDigits(i) == sum) /*Если сумма цифр очередного числа равна sum*/
* * * * *count++; /*Увеличиваем счетчик чисел на 1*/
Немого модифицируем
C
1
2
3
4
for (i = 0; i < end; i++)
   for (j = 0; j < end; j++)
      if(SumDigits(i) == SumDigits(j))
         count++;
0
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
21.11.2013, 21:00  [ТС] 11
Блин ну я и тормоз...можно весь код?((
Буду разбираться(
0
kazak
3061 / 2382 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
21.11.2013, 21:02 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*Функция SumDigits вычисляет сумму цифр числа, переданного ей в качестве аргумента*/
int SumDigits (int number)
{
   int sum = 0; /*Переменная в которой будет накапливаться сумма*/
 
   do
   {
      sum += number % 10; /*Прибавляем к sum остаток от деления number на 10 (т.е. последнюю цифру)*/
   }while (number /= 10); /*Делим number на 10, целую часть от деления помещаем в number же. Повторяем все до
                                       тех пор, пока number не станет равным нулю*/
 
   return sum; /*Возвращаем найденную сумму*/
}
 
int S (int dig)
{
   int i, j, count = 0, end = 10; /*Объявляем переменные для счетчика цикла, счетчика найденных чисел
                                           и для верхнего предела цикла*/
 
   if (dig < 1) /*Проверяем разрядность числа, если она меньше единицы возвращаем 0*/
      return 0;
 
   /*Последнее число разрядности n будет равно 10^n - 1. В первом цикле находим 10^n, -1 представим во втором 
      цикле как строгое неравенство i < end*/
   for (i = 1; i < dig; i++)
      end *= 10;
 
   for (i = 0; i < end; i++) 
      for (j = 0; j < end; j++)
         if ( SumDigits(i) == SumDigits(j)) 
            count++; 
 
   return count; /*Возвращаем найденное количество чисел*/
}
0
madonzy
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 65
21.11.2013, 23:07  [ТС] 13
Спасибо огромно заработало!
0
21.11.2013, 23:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 23:07

Записать в другой файл первые n слов этого файла, где п задается с клавиатуры
Всем привет)) Помогите, пожалуйста, написать программу на С++. Учусь на первом...

Раздача карт при игре в дурака, количество игроков задается с клавиатуры
Здравствуйте помогите чайнику написать программу: раздачи карт при игре в...

Программа раздачи карт при игре в дурака (количество игроков задается с клавиатуры)
помогите написать программу раздачи карт при игре в дурака (количество игроков...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru