こんにちは。

fuku です、皆さん いかが

お過ごしでしょうか。

熊本の 地震は 大変ですね。

一早い 復旧・復興を お祈りしています。

亡くなられた方たちの ご冥福を お祈りします。


今回の 記事なのですが、

例によって、極選 予想問題集より、

お伝えします。


小町算
 1, 2, 3, 4, 5, 6, 7, 8, 9
までの 数字を1個づつ 使って、
+, - で 合計を 100にします。
その 式を 出力します。

という、PGです。^^

以下に、作成した コードを

載せておきます。

ご参考になれば、幸いです :)



#include <stdio.h>
#include <string.h>

int main(){

int i;
int n;
int s;
int sign;
int ope[10];

for(i = 1; i<= 9; i++){
ope[i] = 0;}

while(ope[1] < 3){
  s = 0;
  n = 0;
  sign = 1;

    for(i = 1; i <= 9; i++){
      if(ope[i] == 0){
        n = n*10 + i;}
        else{
         s = s+ sign*n;
         n = i;
      if(ope[i] == 2){
         sign = 1;}
         else{
          sign = -1;}
        }
     }
 




s = s + sign*n;

 if(s == 100){
       for(i=1; i <= 9; i++){
          if(ope[i] == 1){
             printf("%s", "-");}
             else {
                  if(ope[i] == 2){
                       printf("%s", "+");}
                      }
     printf("%d", i);
                                        }
    printf("%s\n", "");
                      }



i = 9;
ope[i] = ope[i] + 1;
   while((i > 1) && (ope[i] == 3)){
       ope[i] = 0;
       i = i - 1;
       ope[i] = ope[i] + 1;}
   }
 }