Apapa - RSDN = Sad
От: Apapa Россия  
Дата: 11.04.03 09:09
Оценка: 48 (4)
Недавно был в отпуске!

Вот сочинение на тему отпуска:

Apapa — RSDN = Sad

Одинаковым буквам соответствуют одинаковые цифры, разным — разные...


Здесь могла бы быть Ваша реклама!
Re: Apapa - RSDN = Sad
От: UgN  
Дата: 11.04.03 09:14
Оценка:
Здравствуйте, Apapa, Вы писали:

A>Apapa — RSDN = Sad


A>Одинаковым буквам соответствуют одинаковые цифры, разным — разные...


Case sensitive?
Re: Apapa - RSDN = Sad
От: Demon Россия  
Дата: 11.04.03 09:22
Оценка: 26 (2)
Здравствуйте, Apapa, Вы писали:

A>Недавно был в отпуске!


A>Вот сочинение на тему отпуска:

A>Apapa — RSDN = Sad
Одинаковым буквам соответствуют одинаковые цифры, разным — разные...

Apapa - RSDN = Sad
10101 - 9583 = 518
Re[2]: Apapa - RSDN = Sad
От: UgN  
Дата: 11.04.03 09:27
Оценка: 7 (1)
Здравствуйте, UgN, Вы писали:


UgN>Case sensitive?

Если нет, то

10101 — 9583 = 518
Re: Apapa - RSDN = Sad
От: nikholas Россия  
Дата: 11.04.03 09:28
Оценка: 1 (1) +1 :)))
Здравствуйте, Apapa, Вы писали:

A>Недавно был в отпуске!


A>Вот сочинение на тему отпуска:


A>Apapa — RSDN = Sad


Отсюда получаем: Apapa = RSDN + Sad
Re: Case sensitive
От: Pushkin Россия www.linkbit.com
Дата: 14.04.03 06:19
Оценка: 9 (3)
Re[2]: Case sensitive
От: UgN  
Дата: 14.04.03 07:01
Оценка:
Здравствуйте, Pushkin, Вы писали:

P>


Что за программка?
Brute force?
Re[3]: Case sensitive
От: Pushkin Россия www.linkbit.com
Дата: 14.04.03 07:08
Оценка:
Здравствуйте, UgN, Вы писали:

UgN>Что за программка?

UgN>Brute force?

Smart force
Перебор, конечно, надо просто организовать его аккуратненько
Re[4]: Case sensitive
От: UgN  
Дата: 14.04.03 07:25
Оценка:
Здравствуйте, Pushkin, Вы писали:

UgN>Что за программка?

UgN>Brute force?

P>Smart force

P>Перебор, конечно, надо просто организовать его аккуратненько

Выкладывай.

Чем больше кода в этом форуме, тем тошнее его врагам!
Re[5]: Case sensitive
От: Pushkin Россия www.linkbit.com
Дата: 14.04.03 07:35
Оценка: 5 (2)
Здравствуйте, UgN, Вы писали:

UgN>Выкладывай.

UgN>Чем больше кода в этом форуме, тем тошнее его врагам!


Хорошо, токо чур не пинать — писал в выходной, а за окном светило солнышко


// Rebus.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

template<class T> 
void Swap(T& i1,T& i2)
{
    T t=i1;
    i1=i2;
    i2=t;
}

template<class T> 
void Sort(T* var,int n) //да, пузырьком, имею право :)
{
    for(int i=0;i<n-1  ;i++)
    for(int j=0;j<n-1-i;j++)
    if(var[j]>var[j+1])
        Swap(var[j],var[j+1]);
}


void main() { while(1)
{
    printf("\7\n");
    char s[80];
    gets(s);

    char letter[11]={0},sign=0,eq=0;    
    for(char* ss=s;*ss;ss++)
    {
        if(*ss=='+' || *ss=='-'|| *ss=='*' || *ss=='/')
            sign=*ss;
        else if(*ss=='=')
            eq=1;
        else if(!strchr(letter,*ss))
            strncat(letter,ss,1);
    }

    int np=strlen(letter);
    if(np>10 || !np || !sign || !eq)
        continue;

    //далее идёт перебор всевозможных групп из np неповторяющихся цифр 
    int var[10];
    for(int p=0;p<10;p++)
        var[p]=p;

    while(p>=0)
    {
        //сейчас в var лежит очередная воможная комбинация - проверяем
        char scopy[80];
        strcpy(scopy,s);

        //готовим замену
        char d[256]={0},i=0;
        for(ss=letter;*ss;ss++)
            d[(unsigned char)(*ss)]='0'+var[i++];

        //заменяем буквы на цифры
        for(ss=scopy;*ss;ss++)
            if(*ss!=sign && *ss!='=')
                *ss=d[*ss];

        char* s1=scopy;
        char* s2=strchr(s1,sign);    *(s2++)=0;
        char* s3=strchr(s2,'=');    *(s3++)=0;

        if(s1[0]!='0' && s2[0]!='0' && s3[0]!='0')
        if(    sign=='+' && atoi(s1)+atoi(s2)==atoi(s3) ||
            sign=='-' && atoi(s1)-atoi(s2)==atoi(s3) ||
            sign=='*' && atoi(s1)*atoi(s2)==atoi(s3) ||
            sign=='/' && atoi(s1)/atoi(s2)==atoi(s3) )
                printf("%s%c%s=%s\n",s1,sign,s2,s3);
        //конец обработки очередного варианта ///////////////////////
        
        int m=0;
        for(p=9;p>=0;m=__max(m,var[p]),p--)
        if(p<np && var[p]<m)
        {
            int p1=p,p2;
            for(m=10,p++;p<10;p++)
            if(var[p]>var[p1] && var[p]<m)
            {
                p2=p;
                m=var[p];
            }

            Swap(var[p1],var[p2]);
            Sort(var+p1+1,10-p1-1);
            break;
        }
    }
}}
Re[2]: Case sensitive
От: Apapa Россия  
Дата: 14.04.03 08:52
Оценка:
Привет, Pushkin!

Весь день сегодня что-то с интернетом...

P>


Имелось в виду конечно последнее решение, но...
остальные

Я даже решил, что надо было поставить задачу таким образом:

Apapa — rsdn = sad

с учетом регистра (10707 — 9834 = 873) и без (10101 — 9583 = 518)!


Здесь могла бы быть Ваша реклама!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.