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

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

Войти
Регистрация
Восстановить пароль
 
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
#1

Кто может сделать олимпиадную задачу? - C++

24.10.2012, 20:24. Просмотров 927. Ответов 3
Метки нет (Все метки)

Нашел одну олимпиадную задачу, не знаю как ее решить. Кто-нибудь может?

Четырехзначное число, записанное в восьмеричной системе счисления имеет старшим разрядом единицу. Если эту единицу переместить в конец записи, то новое число окажется в три раза больше исходного. Определите исходное число и запишите его в восьмеричной системе счисления.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 20:24     Кто может сделать олимпиадную задачу?
Посмотрите здесь:

решите кто может....пляз C++
C++ с рисунком для интеллектуалов кто знает как решит задачу на си??
Кто может объяснить? C++
C++ 3 задачи на С++.. Кто может...
может поможет кто? C++
Кто-нибудь может переделать задачу со структур на классы? C++
Кто может написать программу на с++ C++
Кто может перевести из паскаля в с++? C++
C++ Кто может проверить программу?
Кто может объяснить a = a + b? C++
C++ Кто может сделать?
Может кто знает как сделать рандом от 0 до 4294967295 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
24.10.2012, 21:27     Кто может сделать олимпиадную задачу? #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
int[] obmen(int mas[]){
    int buf=mas[0],mas1[4];
    for(int i=0;i<3;i++)
        mas1[i]=mas[i+1];
    mas1[3]=buf;
    return mas1;
}
int chislo(int[] mas){
    int chislo=1;
    for(int i=0;i<4;i++){
        chislo*=mas[i];
        chislo*=10;
    }
    return chislo;
}
void main{
    int ch[4],ch1[4];
    for(int i=0;i<8;i++)
        for(int j=0;j<8;j++)
            for(int k=0;k<8;k++)
                for(int l=0;l<8;l++){
                    ch[i]=i;ch[j]=j;ch[k]=k;ch[l]=l;
                    if(chislo(ch)==3*chislo(ch1))
                        cout<<chislo(ch);
                 }
}
Добавлено через 41 минуту
хотя тут не плохо былобы еще сделать перевод в 10ю систему счисления, тогда можно будет применить a=3*b а так из за сдвигов может выдавать неверный результат
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.10.2012, 21:30     Кто может сделать олимпиадную задачу? #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
int main(){
    for(int i=0;i<8;i++)
        for(int j=0;j<8;j++)
            for(int k=0;k<8;k++)
                if((8*8*8+i*8*8+j*8+k)*3==i*8*8*8+j*8*8+k*8+1)
                    cout<<1<<i<<j<<k<<endl;
    return 0;
}
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
24.10.2012, 21:39  [ТС]     Кто может сделать олимпиадную задачу? #4
А можно комментарии к тому, что тут где как работает?
Yandex
Объявления
24.10.2012, 21:39     Кто может сделать олимпиадную задачу?
Ответ Создать тему
Опции темы

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