P2404 自然数的拆分问题
思路分析
傻瓜做法,因为 n<=8 ,所以可以把7中情况都列出来输出答案;
注意事项
注意行和列的范围,防止多输和少输;
代码实现
#include <stdio.h>
int main(){
int n
, i
, j
;
int a
[21][8] = {{1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 2, 0},
{1, 1, 1, 1, 1, 3, 0, 0},
{1, 1, 1, 1, 2, 2, 0, 0},
{1, 1, 1, 1, 4, 0, 0, 0},
{1, 1, 1, 2, 3, 0, 0, 0},
{1, 1, 1, 5, 0, 0, 0, 0},
{1, 1, 2, 2, 2, 0, 0, 0},
{1, 1, 2, 4, 0, 0, 0, 0},
{1, 1, 3, 3, 0, 0, 0, 0},
{1, 1, 6, 0, 0, 0, 0, 0},
{1, 2, 2, 3, 0, 0, 0, 0},
{1, 2, 5, 0, 0, 0, 0, 0},
{1, 3, 4, 0, 0, 0, 0, 0},
{1, 7, 0, 0, 0, 0, 0, 0},
{2, 2, 2, 2, 0, 0, 0, 0},
{2, 2, 4, 0, 0, 0, 0, 0},
{2, 3, 3, 0, 0, 0, 0, 0},
{2, 6, 0, 0, 0, 0, 0, 0},
{3, 5, 0, 0, 0, 0, 0, 0},
{4, 4, 0, 0, 0, 0, 0, 0}};
scanf("%d", &n
);
switch(n
){
case 2:
for(i
= 0; i
<= 0; i
++){
for(j
= 6; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 6)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
case 3:
for(i
= 0; i
<= 1; i
++){
for(j
= 5; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 5)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
case 4:
for(i
= 0; i
<= 3; i
++){
for(j
= 4; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 4)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
case 5:
for(i
= 0; i
<= 5; i
++){
for(j
= 3; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 3)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
case 6:
for(i
= 0; i
<= 9; i
++){
for(j
= 2; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 2)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
case 7:
for(i
= 0; i
<= 13; i
++){
for(j
= 1; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 1)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
case 8:
for(i
= 0; i
<= 20; i
++){
for(j
= 0; j
<= 7; j
++){
if(a
[i
][j
] != 0 && j
== 0)
printf("%d", a
[i
][j
]);
else if(a
[i
][j
] != 0)
printf("+%d", a
[i
][j
]);
}
printf("\n");
}
break;
}
return 0;
}
转载请注明原文地址:https://blackberry.8miu.com/read-45864.html