²é¿´: 2206  |  »Ø¸´: 11

holmescn

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] ¡¾·ÖÏí¡¿¹ØÓÚ9¸öÊý×ÖÇóºÍµÄCÓïÑÔ³ÌÐò ÒÑÓÐ9È˲ÎÓë

ÓôÃÆ£¬¸Õ·¢ÉÏÈ¥¾Í±»¸ÉµôÁË¡£ÎÒÔÙ·¢Ò»¸öÌù°É¡£
¾­¹ýÎÒÒ»ÏÂÎç¼ÓÒ»ÍíÉÏ£¨´óÔ¼ÊÇÏÂÎç4µãµ½Á賿2µã£©µÄÁ¬ÐøË¼¿¼£¬ÖÕÓÚÓÃCʵÏÖÁËÕâ¸öÌâÄ¿¡£³ÌÐòÓе㳤£¬Ã»ÓÐ×¢ÊÍ£¬´ó¼Ò´ÕºÏΧ¹Ûһϰɡ£
²»Ã÷°×µÄµØ·½´ó¼Ò¿ÉÒÔÏ໥½»Á÷£¬Çд衣ºÇºÇ¡£
CODE:
#include
#include
#include
#include
#include

struct node
{
    int num;
    char op;
    int digits;
};

int Calc(struct node* p, int n);
int myAtoi(char* begin, int length);
int Find(struct node* p, int n, int sum);
bool genNumber(struct node* p, int n, int r);
void toNumbers(struct node* p, int n);
void genOperator(struct node* p, int n, int flag);
void Print(struct node* p, int n);

char numbers[]="123456789";

int myAtoi(char* begin, int length)
{
    int result=0;
    char* r=malloc(length+1);
    r=strncpy(r,begin,length);
    r[length+1]=0;
    result=atoi(r);
    free(r);
    return result;
}
void toNumbers(struct node* p, int n)
{
    char* q=&numbers[0];

    for(int i=0;i     {
        p[i].num=myAtoi(q,p[i].digits);
        q+=p[i].digits;
    }
}

int Calc(struct node* p, int n)
{
    int sum=0;
    sum=p[0].num;
    if(p[0].op=='-')
        sum=0-sum;

    for(int i=1;i     {
        switch(p[i].op)
        {
            case '+':
                sum+=p[i].num;
                break;
            case '-':
                sum-=p[i].num;
                break;
            default:
                break;
        }
    }

    return sum;
}

bool genNumber(struct node* p, int n, int r)
{
    if(r<0)
    {
        p[n+2].digits++;
        p[n+1].digits=0;
        p[n].digits=0;
        return false;
    }

    if(n==0)
    {
        if(r==0)
            return false;
        p[n].digits=r;
        return true;
    }

    if(n==1)
    {
        p[n].digits++;
    }

    if(p[n].digits==0)
    {
        p[n].digits=1;
    }
    genNumber(p, n-1, r-p[n].digits);
}

void genOperator(struct node* p, int n, int flag)
{
    for(int i=0;i     {
        switch(flag & 1)
        {
            case 0:
                p[i].op='+';
                break;
            case 1:
                p[i].op='-';
                break;
        }
        flag=flag>>1;
    }

}

int Find(struct node* p, int n, int sum)
{
    int total=0;
    int res=0;
    memset(p, 0, 9*sizeof(struct node));

    while(p[n].digits<9)
    {
        if(genNumber(p, n, 9)==false)
            continue;

        toNumbers(p, n);

        for(int j=0;j         {
            genOperator(p, n, j);
            res=Calc(p, n);

            if(res==sum)
            {
                for(int k=0;k                 {
                    printf("%c%d",p[k].op,p[k].num);
                }
                printf("=%d\n",res);

                total++;
            }
        }
    }

    return total;
}

int main()
{
    int sum;
    int total=0;
    struct node p[9];
    memset(p, 0, 9*sizeof(struct node));

    printf("Input the sum: ");
    scanf("%d",&sum);

    puts("Results:");

    for(int i=1;i<10;i++)
        total+=Find(p, i, sum);

    printf("Total is %d\n", total);
}

[ Last edited by nono2009 on 2010-10-30 at 15:19 ]
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yalefield

½ð³æ (ÎÄ̳¾«Ó¢)

ÀϺºÒ»Ã¶

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
resonant(½ð±Ò+3):Ïòר¼Òѧϰ£º-£© Χ¹Û»¹ÊÇÐèҪˮƽµÄ£¬¹þ¹þ 2010-04-27 12:05
CODE:
#include
#include
#include
#include
#include

struct node
{
    int num;
    char op;
    int digits;
};

int Calc(struct node* p, int n);
int myAtoi(char* begin, int length);
int Find(struct node* p, int n, int sum);
bool genNumber(struct node* p, int n, int r);
void toNumbers(struct node* p, int n);
void genOperator(struct node* p, int n, int flag);
void Print(struct node* p, int n);

char numbers[]="123456789";

int myAtoi(char* begin, int length)
{
    int result=0;
    char* r=malloc(length+1);
    r=strncpy(r,begin,length);
    r[length+1]=0;
    result=atoi(r);
    free(r);
    return result;
}
void toNumbers(struct node* p, int n)
{
    char* q=&numbers[0];

    for(int i=0;i     {
        p[i].num=myAtoi(q,p[i].digits);
        q+=p[i].digits;
    }
}

int Calc(struct node* p, int n)
{
    int sum=0;
    sum=p[0].num;
    if(p[0].op=='-')
        sum=0-sum;

    for(int i=1;i     {
        switch(p[i].op)
        {
            case '+':
                sum+=p[i].num;
                break;
            case '-':
                sum-=p[i].num;
                break;
            default:
                break;
        }
    }

    return sum;
}

bool genNumber(struct node* p, int n, int r)
{
    if(r<0)
    {
        p[n+2].digits++;
        p[n+1].digits=0;
        p[n].digits=0;
        return false;
    }

    if(n==0)
    {
        if(r==0)
            return false;
        p[n].digits=r;
        return true;
    }

    if(n==1)
    {
        p[n].digits++;
    }

    if(p[n].digits==0)
    {
        p[n].digits=1;
    }
    genNumber(p, n-1, r-p[n].digits);
}

void genOperator(struct node* p, int n, int flag)
{
    for(int i=0;i     {
        switch(flag & 1)
        {
            case 0:
                p[i].op='+';
                break;
            case 1:
                p[i].op='-';
                break;
        }
        flag=flag>>1;
    }

}

int Find(struct node* p, int n, int sum)
{
    int total=0;
    int res=0;
    memset(p, 0, 9*sizeof(struct node));

    while(p[n].digits<9)
    {
        if(genNumber(p, n, 9)==false)
            continue;

        toNumbers(p, n);

        for(int j=0;j         {
            genOperator(p, n, j);
            res=Calc(p, n);

            if(res==sum)
            {
                for(int k=0;k                 {
                    printf("%c%d",p[k].op,p[k].num);
                }
                printf("=%d\n",res);

                total++;
            }
        }
    }

    return total;
}

int main()
{
    int sum;
    int total=0;
    struct node p[9];
    memset(p, 0, 9*sizeof(struct node));

    printf("Input the sum: ");
    scanf("%d",&sum);

    puts("Results:");

    for(int i=1;i<10;i++)
        total+=Find(p, i, sum);

    printf("Total is %d\n", total);
}

2Â¥2010-04-27 10:48:43
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sxlion811

½ð³æ (ÕýʽдÊÖ)

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
resonant(½ð±Ò+1):»¶Ó­²ÎÓëÌÖÂÛ£º-£© 2010-04-27 12:05
´ËÌùÉõºÃ£¡

ÆäʵÒÔǰSASÊÇÓÃC±àдµÄ£¬ºóÀ´¸ù¾ÝÐèÒª¸ÄÓÃjava±àдµÄ¡£
CÊǺöàÈí¼þµÄÔ´Í·¡£
¿ªÐÄŬÁ¦Ò»±²×Ó
3Â¥2010-04-27 10:49:55
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yalefield

½ð³æ (ÎÄ̳¾«Ó¢)

ÀϺºÒ»Ã¶

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
resonant(½ð±Ò+1):»¶Ó­²ÎÓëÌÖÂÛ£º-£© 2010-04-27 12:05
ÒýÓûØÌû:
Originally posted by sxlion811 at 2010-04-27 10:49:55:
CÊǺöàÈí¼þµÄÔ´Í·¡£

ÉÏÓÐÌ죬ÏÂÓеØ
ÖмäÈ«¿¿Õâ¸öC
¼Ó¼Ó¼õ¼õ¿§·È¿à
ÕýÔò½Å±¾ÄѶÀÁ¢
4Â¥2010-04-27 10:58:55
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

½ð³æ (ÕýʽдÊÖ)

ºÇºÇ£¬´ó¼Ò»¥Ïàѧϰ¡£

[ Last edited by holmescn on 2010-4-27 at 11:04 ]
5Â¥2010-04-27 11:03:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
resonant(½ð±Ò+1):»¶Ó­²ÎÓëÌÖÂÛ£º-£© 2010-04-27 12:05
ÒýÓûØÌû:
Originally posted by sxlion811 at 2010-04-27 10:49:55:
´ËÌùÉõºÃ£¡

ÆäʵÒÔǰSASÊÇÓÃC±àдµÄ£¬ºóÀ´¸ù¾ÝÐèÒª¸ÄÓÃjava±àдµÄ¡£
CÊǺöàÈí¼þµÄÔ´Í·¡£

ÄãÈ·¶¨ SAS ÊÇÓà C ±àдµÄ£¿SAS ³öÉúµÄʱºò»¹Ã»ÓÐ C °É£¿

ÁíÍ⣬ÏÖÔÚµÄ SAS Ò²²»»áÊÇ Java дµÄ£¬³ý·ÇÄã˵µÄÊǽçÃæ£¬Õâ¸öÎҾͲ»Çå³þÁË¡­¡­
6Â¥2010-04-27 11:52:22
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¡ï
resonant(½ð±Ò+1):»¶Ó­Ð³棬ÇëÎð´¿±í¶¥Ìù(*_*) 2010-04-27 13:22
7Â¥2010-04-27 13:03:32
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

cangcang3683

½ð³æ (СÓÐÃûÆø)

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
resonant(½ð±Ò+1):»¶Ó­Î§¹ÛÌÖÂÛ£¬ÎÒÏëÄã»òÐí¿ÉÒÔ¿´¿´Õâ¸öÌû×ӾʹóÖÂÃ÷°×ÁË¡£http://emuch.net/bbs/viewthread.php?tid=1981811&fpage=1 2010-04-27 13:53
ËäÈ»¿´²»¶®,»¹ÊǶ¥ÉÏ,ÐÁ¿àÁËÂ¥Ö÷
8Â¥2010-04-27 13:36:49
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sxlion811

½ð³æ (ÕýʽдÊÖ)

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
Originally posted by snoopyzhao at 2010-04-27 11:52:22:


ÄãÈ·¶¨ SAS ÊÇÓà C ±àдµÄ£¿SAS ³öÉúµÄʱºò»¹Ã»ÓÐ C °É£¿

ÁíÍ⣬ÏÖÔÚµÄ SAS Ò²²»»áÊÇ Java дµÄ£¬³ý·ÇÄã˵µÄÊǽçÃæ£¬Õâ¸öÎҾͲ»Çå³þÁË¡­¡­

»ã±à×îNB¡£
¿ªÐÄŬÁ¦Ò»±²×Ó
9Â¥2010-04-27 17:58:31
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÌìѩСľ³æ

½ð³æ (³õÈëÎÄ̳)

Ç¿ÈË

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
jjdg(½ð±Ò+1):»¶Ó­Ð³æ 2010-05-03 13:41
ÐèҪ̫¸ßÉîµÄÂß¼­ÁË...
10Â¥2010-05-03 12:25:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ holmescn µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 290Çóµ÷¼Á +7 ^O^Ø¿ 2026-03-19 7/350 2026-03-20 21:43 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Î人Àí¹¤²ÄÁϹ¤³Ìר˶µ÷¼Á +8 Doleres 2026-03-19 8/400 2026-03-20 21:09 by zhukairuo
[¿¼ÑÐ] 265Çóµ÷¼Á +12 ÁºÁºÐ£Ð£ 2026-03-19 13/650 2026-03-20 21:01 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 295¸´ÊÔµ÷¼Á +8 ¼òľChuFront 2026-03-19 8/400 2026-03-20 20:44 by zhukairuo
[¿¼ÑÐ] 287Çóµ÷¼Á +6 ³¿»èÏßÓëÐǺ£ 2026-03-19 7/350 2026-03-20 20:39 by ѧԱ8dgXkO
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤ +7 °²È«Éϰ¶£¡ 2026-03-16 7/350 2026-03-20 20:37 by zhukairuo
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤´óѧ0703»¯Ñ§318·Ö£¬ÓпÆÑо­Àú£¬Çóµ÷¼Á +4 һƿ±½¼×Ëá 2026-03-14 4/200 2026-03-20 20:36 by fen_rao
[¿¼ÑÐ] ¹ãÎ÷´óѧ¼ÒÇÝÒÅ´«ÓýÖÖ¿ÎÌâ×é2026Äê˶ʿÕÐÉú£¨½ÓÊÕ¼ÆËã»úרҵµ÷¼Á£© +3 123°¢±ê 2026-03-17 3/150 2026-03-20 15:58 by ·ÉÐÐçù
[»ù½ðÉêÇë] ѧУÒѾ­Ìá½»µ½NSFC£¬»¹ÄÜÐÞ¸ÄÂ𣿠40+4 babangida 2026-03-19 8/400 2026-03-20 15:58 by babero
[¿¼ÑÐ] 281Çóµ÷¼Á£¨0805£© +14 ÑÌÏ«Ò亣 2026-03-16 25/1250 2026-03-20 15:47 by yuncha
[¿¼ÑÐ] 265Çóµ÷¼Á +8 ÁºÁºÐ£Ð£ 2026-03-17 8/400 2026-03-20 14:40 by 27µÀ¿ÆÌØ
[¿¼ÑÐ] ÄÜÔ´²ÄÁÏ»¯Ñ§¿ÎÌâ×éÕÐÊÕ˶ʿÑо¿Éú8-10Ãû +5 ÍÑÓ±¶ø³ö 2026-03-16 14/700 2026-03-20 09:30 by kkcoco25
[¿¼ÑÐ] 346Çóµ÷¼Á[0856] +3 WayneLim327 2026-03-16 6/300 2026-03-19 11:21 by WayneLim327
[¿¼ÑÐ] ²ÄÁÏרҵÇóµ÷¼Á +5 hanamiko 2026-03-18 5/250 2026-03-18 20:19 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 344Çóµ÷¼Á +6 knight344 2026-03-16 7/350 2026-03-18 20:13 by walc
[¿¼ÑÐ] 299Çóµ÷¼Á +5 ¡÷С͸Ã÷* 2026-03-17 5/250 2026-03-18 11:49 by ¾¡Ë´Ò¢1
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +3 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 3/150 2026-03-18 10:12 by macy2011
[¿¼ÑÐ] Ò»Ö¾Ô¸ËÕÖÝ´óѧ²ÄÁϹ¤³Ì£¨085601£©×¨Ë¶ÓпÆÑо­ÀúÈýÏî¹ú½±Á½¸öʵÓÃÐÍרÀûÒ»ÏîÊ¡¼¶Á¢Ïî +6 ´ó»ðɽС»ðɽ 2026-03-16 8/400 2026-03-17 15:05 by ÎÞи¿É»÷111
[¿¼ÑÐ] 302Çóµ÷¼Á +4 С¼Öͬѧ123 2026-03-15 8/400 2026-03-17 10:33 by С¼Öͬѧ123
[¿¼ÑÐ] 11408 Ò»Ö¾Ô¸Î÷µç£¬277·ÖÇóµ÷¼Á +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û