ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1014. Произведение цифр

Test#5
Послано bars_rb 15 сен 2010 17:54
What's in this test?
Results for 0 is 10
For 1..9 is 1..9, it's OK.
For 128 is 2222222

Here is alg
    int n;
    int e=0;
    int q=0;
    cin>>n;
    if(n==1){cout<<1;cin>>n;return 0;}
    if(n==0){cout<<10;cin>>n;return 0;}

    while (n>1)
    {
        e=0;
        if(q==-1)break;
        for(int i=2;i<=9;i++)
        {

            if((n/i)*i==n)
            {
                q=q*10+i;
                n=n/i;
                break;
            }
            else
            {if(i==9)e=1;}
        }
        if (e==1)
        q=-1;
    }
cout<<q;
cin>>q;
    return 0;

Thanks.
Re: Test#5
Послано TheDreamCatcher 25 окт 2010 22:22
On input 45 correct answer is 59!
In your case answer is 335
Re: Test#5
Послано Mikael Arakelyan(ERIICTA) 23 ноя 2010 20:33
I didn't give the whole code..
I hate this f*cking excercise.. it is second day I am trying to solve ...
now please help me
here is the input and output, please be careful to notice something
........
what is wrong here???
first number is my input and the second is output...
heeeelp
mikael@ubuntu:~/Desktop$ ./xx
1
1
mikael@ubuntu:~/Desktop$ ./xx
0
10
mikael@ubuntu:~/Desktop$ ./xx
2
2
mikael@ubuntu:~/Desktop$ ./xx
3
3
mikael@ubuntu:~/Desktop$ ./xx
4
22
mikael@ubuntu:~/Desktop$ ./xx
5
5
mikael@ubuntu:~/Desktop$ ./xx
6
23
mikael@ubuntu:~/Desktop$ ./xx
8
24
mikael@ubuntu:~/Desktop$ ./xx
9
33
mikael@ubuntu:~/Desktop$ ./xx
10
25
mikael@ubuntu:~/Desktop$ ./xx
20
45
mikael@ubuntu:~/Desktop$ ./xx
25
55
mikael@ubuntu:~/Desktop$ ./xx
30
56
mikael@ubuntu:~/Desktop$ ./xx
45
59
mikael@ubuntu:~/Desktop$ ./xx
60
256
mikael@ubuntu:~/Desktop$ ./xx
105
357
mikael@ubuntu:~/Desktop$ ./xx
108
269
mikael@ubuntu:~/Desktop$

Re: Test#5
Послано Vlad Tarniceru 28 дек 2010 16:58
for 128 isn't 2222222 , is 882

for(int i=2;i<=9;i++)

corect is:
for(int i=9;i>=2;i--)  becouse 222 is the same product like 8, 33 like 9
Re: Test#5
Послано Gio Pataraia 6 янв 2011 14:26
no for 128 minimal is 288 and not 222222
bars_rb писал(a) 15 сентября 2010 17:54
What's in this test?
Results for 0 is 10
For 1..9 is 1..9, it's OK.
For 128 is 2222222

Here is alg
    int n;
    int e=0;
    int q=0;
    cin>>n;
    if(n==1){cout<<1;cin>>n;return 0;}
    if(n==0){cout<<10;cin>>n;return 0;}

    while (n>1)
    {
        e=0;
        if(q==-1)break;
        for(int i=2;i<=9;i++)
        {

            if((n/i)*i==n)
            {
                q=q*10+i;
                n=n/i;
                break;
            }
            else
            {if(i==9)e=1;}
        }
        if (e==1)
        q=-1;
    }
cout<<q;
cin>>q;
    return 0;

Thanks.
Re: Test#5
Послано King Taylor Ag 15 янв 2011 18:39
input 4
output 4
4<22
!!
Re: Test#5
Послано [PNTU]Sergiy D 14 май 2011 19:57
sory, but why for 60 is 256? i think it's 160
Re: Test#5
Послано Volodymyr K 18 май 2011 20:37
1*6*0 =0;
0 != 60

Edited by author 18.05.2011 20:37
Re: Test#5
Послано ScaV 26 авг 2011 03:02


Edited by author 26.08.2011 03:02