fork download
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int a[9],b[9],a_ln[9]={0},a_lnf[9]={0};
  6. char k[9]={'+','+','+','+','+','+','+','+','+'};
  7. int i,ac,bc,next,ans,ans_cnt = 0;
  8. while(a_lnf[8]==0/*&&ans_ant<10*/)
  9. {
  10. //初期化
  11. for(i = 0; i < 9; i++)
  12. k[i] = '+';
  13.  
  14. ac=1;
  15. a_ln[0] = 1;
  16. //つなげる
  17. for(i=1;i<9;i++)
  18. {
  19. if(a_lnf[i-1]==0)//つなげない場合
  20. a_ln[ac++] = i+1;
  21. else//つなげる場合
  22. {
  23. a_ln[ac-1] *= 10;
  24. a_ln[ac-1] += i+1;
  25. }
  26. }
  27.  
  28. //記号総当たり
  29. while(k[ac-1] == '+'/*&&ans_ant<10*/)
  30. {
  31. //初期化
  32. bc = 1;
  33. next = 1;
  34.  
  35. for(i = 0; i < ac; i++)
  36. {
  37. a[i] = a_ln[i];
  38. b[i] = 1;
  39. }
  40. b[0] = a[0];
  41. //減算&乗算
  42. for(i = 1; i < ac; i++)
  43. {
  44. switch(k[i-1]){
  45. case '-':
  46. a[i] *= -1;
  47. case '+':
  48. bc++;
  49. default:
  50. b[bc-1] *= a[i];
  51. break;
  52. }
  53. }
  54. //加算
  55. ans = b[0];
  56. for(i = 1; i < bc; i++)
  57. ans += b[i];
  58. //答え合わせ
  59. if(ans==100){
  60. ans_cnt++;
  61. printf("%d個目の答え:",ans_cnt);
  62. for(i = 0; i < ac-1; i++)
  63. printf("%d%c",a_ln[i],k[i]);
  64. printf("%d\n",a_ln[i]);
  65. }
  66. //ずらす
  67. for(i = 0; next; i++)
  68. switch(k[i]){
  69. case '+':
  70. k[i] = '-';
  71. next = 0;
  72. break;
  73. case '-':
  74. k[i] = '*';
  75. next = 0;
  76. break;
  77. case '*':
  78. k[i] = '+';
  79. break;
  80. }
  81. }
  82. next = 1;
  83. for(i = 0; next; i++)
  84. if(a_lnf[i]){
  85. a_lnf[i] = 0;
  86. }
  87. else
  88. {
  89. a_lnf[i] = 1;
  90. next = 0;
  91. }
  92. }
  93. return 0;
  94. }
Success #stdin #stdout 0.02s 1720KB
stdin
Standard input is empty
stdout
1個目の答え:1*2*3*4+5+6+7*8+9
2個目の答え:1-2+3*4*5+6*7+8-9
3個目の答え:1-2+3*4*5-6+7*8-9
4個目の答え:1+2+3+4+5+6+7+8*9
5個目の答え:1*2*3+4+5+6+7+8*9
6個目の答え:1-2*3+4*5+6+7+8*9
7個目の答え:1+2*3+4*5-6+7+8*9
8個目の答え:1-2*3-4+5*6+7+8*9
9個目の答え:1+2-3*4+5*6+7+8*9
10個目の答え:1*2*3*4+5+6-7+8*9
11個目の答え:1-2*3-4-5+6*7+8*9
12個目の答え:1+2-3*4-5+6*7+8*9
13個目の答え:1+2+3-4*5+6*7+8*9
14個目の答え:1*2*3-4*5+6*7+8*9
15個目の答え:12+3*4+5+6+7*8+9
16個目の答え:12-3+4*5+6+7*8+9
17個目の答え:12-3-4+5*6+7*8+9
18個目の答え:12*3-4-5-6+7+8*9
19個目の答え:12+3*4+5+6-7+8*9
20個目の答え:12-3+4*5+6-7+8*9
21個目の答え:12-3-4+5*6-7+8*9
22個目の答え:1+23*4+5-6+7-8+9
23個目の答え:1+23*4-5+6+7+8-9
24個目の答え:1+23-4-5+6+7+8*9
25個目の答え:123-4-5-6-7+8-9
26個目の答え:123+4*5-6*7+8-9
27個目の答え:1*2+34+5+6*7+8+9
28個目の答え:1*2+34+5-6+7*8+9
29個目の答え:1*2+34+5-6-7+8*9
30個目の答え:1+2+34*5+6-7-8*9
31個目の答え:12+34+5*6+7+8+9
32個目の答え:12+34-5+6*7+8+9
33個目の答え:12+34-5-6+7*8+9
34個目の答え:12+34-5-6-7+8*9
35個目の答え:1-2-3+45+6*7+8+9
36個目の答え:1-2-3+45-6+7*8+9
37個目の答え:1-2+3+45+6+7*8-9
38個目の答え:1-2-3+45-6-7+8*9
39個目の答え:1+23-4+56+7+8+9
40個目の答え:1*2+34+56+7-8+9
41個目の答え:1*2*34+56-7-8-9
42個目の答え:1-2-34+56+7+8*9
43個目の答え:1+234-56-7-8*9
44個目の答え:1+2*3+4+5+67+8+9
45個目の答え:1-2+3*4+5+67+8+9
46個目の答え:1-2-3+4*5+67+8+9
47個目の答え:12+3-4+5+67+8+9
48個目の答え:12*3-4*5+67+8+9
49個目の答え:1*23+4+5+67-8+9
50個目の答え:1+2+34-5+67-8+9
51個目の答え:1*234+5-67-8*9
52個目の答え:1*2+3+45+67-8-9
53個目の答え:1+2+3-45+67+8*9
54個目の答え:1*2*3-45+67+8*9
55個目の答え:123+45-67+8-9
56個目の答え:1+2+3-4+5+6+78+9
57個目の答え:1*2*3-4+5+6+78+9
58個目の答え:1*2+3*4+5-6+78+9
59個目の答え:1*2*3*4-5-6+78+9
60個目の答え:1*2-3+4*5-6+78+9
61個目の答え:1*2+3+4*5+6+78-9
62個目の答え:1*2+3-4+5*6+78-9
63個目の答え:12+3*4-5-6+78+9
64個目の答え:12*3-4+5-6+78-9
65個目の答え:1+23-4+5+6+78-9
66個目の答え:1+2*34-56+78+9
67個目の答え:1*2-3+4-5+6+7+89
68個目の答え:1+2*3-4-5+6+7+89
69個目の答え:1+2+3*4-5-6+7+89
70個目の答え:12-3-4+5-6+7+89
71個目の答え:12+3+4+5-6-7+89
72個目の答え:1-23+4*5+6+7+89
73個目の答え:1-23-4+5*6+7+89
74個目の答え:1*23-4+5-6-7+89
75個目の答え:1-23-4-5+6*7+89
76個目の答え:12+3*45+6*7-89
77個目の答え:123+4-5+67-89
78個目の答え:123-45-67+89