とうしきもんだい


とうしきもんだい
Time Limit:1 s Memory Limit:1000 k Total Submit:2135 Accepted:1490サンプルプログラムのダウンロード(PE)
Problem
未完成の式1 2 3 4 5 6 7 8 9=Nのスペース内(1の前にスペースがない)に+を記入することも、-、記入しないこともできます.
プログラムは,ある整数Nを入力して等式を成立させるすべてのスキームの総数を探し出す.解があることを保証する.
Input
この問題には複数のテストデータが含まれており、各データは1行で、整数Nが1つしかありません.
Output
シナリオの合計を出力します.
Sample Input
108

Sample Output
15

Cの解と結果
#include 
#include

int main(){    char array[9];    int N, count;    int pos, result, i, temp, oper;    while(scanf("%d", &N) > 0){        memset(array, ' ', sizeof(array));        count = 0;        if(123456789 == N) count++;        while(1){            pos = 7;            while(1){                if(array[pos] == ' '){                    array[pos] = '-';                    break;                }else if(array[pos] == '-'){                    array[pos] = '+';                    break;                }else{                    array[pos] = ' ';                    pos--;                    if(pos < 0) break;                }            }            if(pos < 0) break;
            result = 0; temp = 1;   oper = 1;            for(i = 0; i < 8; i++){                if(array[i] == ' ') temp = temp * 10 + (i+2);                else{                    result += (oper * temp);                    oper = (array[i] == '+') ? 1 : -1;                    temp = i + 2;                }            }            result += (oper * temp);            if(result == N) count++;        }        printf("%d/n", count);    }    return 0;}
Memory: 32KTime: 7ms