codevs-1447取出整数的一部分

说实在的,这个题目真不想写了……

1447 取出整数的一部分

题目描述 Description

假如有一个整数(int):145678,现在我做截取该数一部份的操作,如输入4,返回前4位即1456;如果输入-3,则返回后面3位即678;如果输入0,则直接返回该数即145678;如果输入的数的绝对值大于上述树的位数(如8或-8),则返回Error。现在请你编程实现。

输入描述 Input Description

第一行,输入一个正整数n(int型)

第二行,输入一个整数k

输出描述 Output Description

第一行(共一行),一个整数或Error;如果返回的数都是0,则返回一个0即可。如果是0开头的数字,如007,只要输出7即可。

样例输入 Sample Input

样1:

145678

4

样2:

145678

-3

样3:

145678

0

样4:

145678

-8

样5:

145678

8

样6:

12000

-3

样7:

12007

-3

样例输出 Sample Output

样1:

1456

样2:

678

样3:

145678

样4:

Error

样5:

Error

样6:

0

样7:

7

 #include<stdio.h>
#include<math.h>
int main()
{
int n,k;
int num,nstr[]={},temp;
int i;
scanf("%d%d",&n,&k);
if(k==)
printf("%d\n",n);
else
{
num=;//下面是统计n的位数同时拆分整个数
temp=n;
while(temp>)
{
nstr[num]=temp%;
num++;
temp/=;
} if(fabs(k)>num)
{
printf("Error\n");
}
else
{
if(k>)
{
num--;
for(i=;i<k;i++) printf("%d",nstr[num-i]);
}
else //当k<0
{
temp=;
k=-k;
for(i=k-;i>=;i--)
{
temp=temp*+nstr[i];
}
printf("%d",temp);
}
printf("\n");
}
}
return ;
}
上一篇:Excel 2003 中如何用VBA 代码访问单元格里的值及操作单元格 - 唐诗宋词的专栏 - 博客频道 - CSDN.NET


下一篇:How to: Registry settings for generating Verbose log