Problem B: 整数分割(II)
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 212 Solved: 93
[Submit][Status][Web Board]
Description
对输入的一个int范围内的正整数进行分割。
Input
一个int类型范围内的正整数。
Output
设输入的整数有N位数,当N是偶数时,分别输出2个数:第1个数是输入数据的第(N/2+1~N)位,第2个数是输入数据的第1~N/2位。
如果N是奇数,则输出3个数:第1个数是输入数据的第(N/2+2~N)位,第2个数是输入数据的第N/2+1位,第3个数是输入数据的第1~N/2位。
输出的2个数或3个数,两两之间用1个空格分割。
所有的输出不输出无意义的0,即:若数据是010, 则输出是10;若数据是000,则输出是0。
举例:
输入是123,则输出是1 2 3。
输入是1234,则输出是12 34。
Sample Input
123
Sample Output
1 2 3
#include <stdio.h>
#include <stdlib.h>
int main()
{
int A, a, i, i2, j, t;
scanf("%d", &A);
if(A < 10)
printf("%d", A);
else
{
for(i = 1, a = A; a >= 10; i++, a /= 10);
// printf("%d", i);
i2 = i % 2;
switch(i2)
{
case 0:
for(j = 1, t = 1; j <= i / 2; j++, t *= 10);
printf("%d %d", A / t, A % t);
break;
case 1:
for(j = 1, t = 1; j <= i / 2; j++, t *= 10);
printf("%d %d %d", A / (t * 10), (A / t) % 10, A % t);
break;
}
}
return 0;
}