Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 30
1

циклы for, while

17.10.2010, 16:10. Просмотров 1158. Ответов 2
Метки нет (Все метки)

for: Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k.

while: Дано натуральное число n. Поменять порядок следования цифр в этом числе на обратный.
(только не по цифрам отдельно менять и выводить,а само число целиком)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2010, 16:10
Ответы с готовыми решениями:

Циклы с условием, циклы с переменной, вложенные циклы
С условием 1. Ввести натуральное число N и вычислить сумму всех чисел фибоначчи меньших N....

Циклы. Напечатать числа в виде таблицы, используя только циклы
Напечатать числа в виде таблицы, используя только циклы (массивы и строки не применять): ...

Циклы. Напечатать числа в виде таблицы, используя только циклы
4. Напечатать числа в виде таблицы, используя только циклы (массивы и строки не применять): ...

Переведите исходные циклы в циклы других форматотв:
Переведите исходные циклы в циклы других форматотв: For i:73 to 122 do в Цикл while: в Цикл...

2
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
17.10.2010, 18:06 2
Лучший ответ Сообщение было отмечено sambuka как решение

Решение

Решение первой задачи (прочтите комментарии):
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
// for
#include <iostream>
#include <math.h> // для степени
 
int sumfig(int num) // определение суммы цифр
{
    int s;
    for (s=0;num>0;num/=10) // цикл, в котором num делится на 10
        s+=num%10; // прибавить остаток от деления на 10 (т.е очередную цифру) к сумме
    return s;
}
 
int main(int argc, char *argv[])
{
    int n,k,i;
    std::cout<<"n k ";
    std::cin>>n>>k;
    
    for (i=0;i<pow(10,n);i++) // основной цикл, перебираются число от 0 до 10^n-1
        if (sumfig(i)==k) // если сумма цифр равна k
            std::cout<<i<<" "; // то вывести это число
    
    system("pause");
    return 0;
}
Добавлено через 10 минут
Решение второй задачи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// while
#include <iostream>
 
int main(int argc, char *argv[])
{
    int num,okn;
    std::cout<<"Enter number: ";
    std::cin>>num; // получаем число
    
    okn=0; // новое число, начальное значение 0
    while (num>0) // тут надо вдуматься и понять алгоритм
    {
        okn=okn*10+num%10; // % означает останок от деления
        num/=10;
    }
    
    std::cout<<okn<<std::endl;
    
    system("pause");
    return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10842 / 6680 / 1614
Регистрация: 25.07.2009
Сообщений: 12,445
17.10.2010, 21:39 3
принципиально без for без while
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int sum_digits(int num) { return ( ! num ) ? 0 : num % 10 + sum_digits(num / 10); }
int power(int num) { return ( num /= 10 ) ? 10 * power(num) : 1; }
int reverse_number(int num){ return ( num / 10 ) ? num % 10 * power(num) + reverse_number(num / 10) : num; }
 
int main(void){
    int num;
    printf("Number: ");
    scanf("%d", &num);
    printf("Sum of digits: %d\nReverse number: %d\n", sum_digits(num), reverse_number(num));
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2010, 21:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Циклы в Паскале (циклы с пост- и предусловием)
Требуется напиcать программу, которая запрашивает числа с клавиатуры до тех пор, пока сумма чисел...

Циклы с параметром (циклы ДЛЯ)
Заданные векторы X(N) и Y(N) преобразовать по правилу: большее из xi и yi принять в качестве нового...

Заменить в коде циклы for на циклы while
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for (j = 2; j &lt;= i / 2;...


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

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

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