Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sambuka
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 30
#1

циклы for, while - C++

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

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

while: Дано натуральное число n. Поменять порядок следования цифр в этом числе на обратный.
(только не по цифрам отдельно менять и выводить,а само число целиком)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 16:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос циклы for, while (C++):

Заменить в коде циклы for на циклы while - C++
int i, j, n; bool a; cin >> i >> n; for (i; i<n; i++) { a = true; for (j = 2; j <= i / 2; j++) if ((i%j) == 0) a =...

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

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

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

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

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

2
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
17.10.2010, 18:06 #2
Решение первой задачи (прочтите комментарии):
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
easybudda
Модератор
Эксперт CЭксперт С++
10000 / 5923 / 997
Регистрация: 25.07.2009
Сообщений: 11,170
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 21:39
Привет! Вот еще темы с ответами:

циклы do while - C++
do { if (a&gt;=b) a%=b; else b%=a; } while (a*b&gt;0); объясните...

Циклы (1/2*2/3*3/4.(n-1)/n) - C++
Всем доброго времени суток. Подскажите как правильно написать цикл для поставленной задачи? Сама задача:

Циклы - Delphi
Забыл как и какой цикл надо использовать, чтобы при несоответствии условия, тело цикла выполнялось заново. А так у меня просто выходит...

Циклы - Free Pascal
Ребят, в общем, как переписать из одного массива в другой элементы без повторение? Весь день голову ломаю. вот что наработал, посмотрите,...


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

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

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