Форум программистов, компьютерный форум CyberForum.ru

Ветвление, Условный оператор, Циклы - C++

Восстановить пароль Регистрация
 
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
09.07.2011, 19:13     Ветвление, Условный оператор, Циклы #1
Всем доброго времени суток. В программировании знаний практически нет, поэтому обращаюсь к людям более грамотным в данной области. Всем кто может помочь с кодом буду признателен. Задачи привожу ниже по списку разделов.

Циклы

1. Рассмотрим некоторое натуральное число n. Если это- не палиндром, то изменим порядок его цифр на обратный и сложим исходное число с получившимся. Если сумма- не палиндром, то над ним повторяется те же действия и т.д., пока не получится палиндром. До настоящего времени неизвестно, завершается ли этот процесс для любого натурального числа n. Даны натуральные числа n,m. Проверить, верно ли, что для n процесс завершается не позднее, чем после m таких действий

Условный оператор

1. На плоскости XOY задана своими координатами точка А. Указать, где она расположена: на какой оси или в каком координатном угле.

2. Даны три числа а, b, с. Определить, какое из них равно d. Если ни одно не равно d, то найти max(d — а, d— b, d— с).

Ветвление

1. Дано целое k от 1 до 180. Определить, какая цифра находится в k-й позиции последовательности 10 11 12 13 ...98 99, в которой выписаны подряд все двухзначные числа.

Двумерные массивы

1. Получить квадратную матрицу- порядка n:

1=======2=======...======n-1======n
n+1=====n+2=====...======2n-1=====2n
2n+1====2n+2====...======3n-1=====3n
.=======.======== .========.========.
.=======.=========.=======.========.
.=======.==========.======.========.
(n-1)n+1=(n-1)n+2===...======n^2-1=====n^2
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
09.07.2011, 20:05     Ветвление, Условный оператор, Циклы #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
using namespace std;
 
int is_not_palyndrome(int);
 
void main(){
int a,b,m;
cout<<"ENTER NATURAL INTEGER: ";
cin>>a;
if (a<0) {
    cout<<"INTEGER IS NOT NATURAL"<<endl;
    cin>>a;
    return;
}
if (!is_not_palyndrome (a)) {
    cout<<"INTEGER IS PALYNDROME"<<endl;
    cin>>a;
    return;
}
cout<<"ENTER M: ";
cin>>m;
for (int i = 0; i < m; i++) {
    if (b=is_not_palyndrome (a)) a+=b;
    else {
       cout<<"PALYNDROME "<<a<<" OBTAINED ON STEP: "<<i<<endl;
       cin>>a;
       return;
    }
}
cout<<"CANT OBTAIN PALYNDROME IN "<<m<<" STEPS"<<endl;
cin>>a;
return;
}
 
int is_not_palyndrome (int number) {
    int a = number;
    int b = 0;
    while (a) {
       b*=10;
       b+=a%10;
       a/=10;
    }
    if (number==b) return 0;
    else return b;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.07.2011, 21:04     Ветвление, Условный оператор, Циклы #3
Paporotnik,
Строку
C++
1
for (int i = 0; i<m; i++)
заменить на:
C++
1
for (int i = 0; i<=m; i++)
иначе например при вводе a=100, m=1 дает неправильный ответ.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
09.07.2011, 21:21     Ветвление, Условный оператор, Циклы #4
угу, проглядел. еще можно проверку на корректность m привинтить
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
10.07.2011, 01:28     Ветвление, Условный оператор, Циклы #5
Ветвление

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    int K, R;
    std::cin >> K
    if ( K % 2 )
        R = K / 20 + 1;
    else
    {
        R = ( K % 20 ) / 2 - 1;
        if ( R < 0 )
             R += 10;
    }
    std::cout << R << std::endl;
    return 0;
}

Матрица

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    int N;
    std::cin >> N;
    int ** A = new int * [N];
    for ( int i = 0; i < N; A[i++] = new int [N] );
    for ( int i = 0; i < N; ++i )
    {
        for ( int j = 0; j < N; ++j )
        {
            A[i][j] = i * N + j + 1;
            std::cout << A[i][j] << " ";
        }
        std::cout << std::endl;
    }
    return 0;
}
Yandex
Объявления
10.07.2011, 01:28     Ветвление, Условный оператор, Циклы
Ответ Создать тему
Опции темы

Текущее время: 00:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru