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
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int n,k; 6 int num,nstr[20]={0},temp; 7 int i; 8 scanf("%d%d",&n,&k); 9 if(k==0) 10 printf("%d\n",n); 11 else 12 { 13 num=0;//下面是统计n的位数同时拆分整个数 14 temp=n; 15 while(temp>0) 16 { 17 nstr[num]=temp%10; 18 num++; 19 temp/=10; 20 } 21 22 if(fabs(k)>num) 23 { 24 printf("Error\n"); 25 } 26 else 27 { 28 if(k>0) 29 { 30 num--; 31 for(i=0;i<k;i++) printf("%d",nstr[num-i]); 32 } 33 else //当k<0 34 { 35 temp=0; 36 k=-k; 37 for(i=k-1;i>=0;i--) 38 { 39 temp=temp*10+nstr[i]; 40 } 41 printf("%d",temp); 42 } 43 printf("\n"); 44 } 45 } 46 return 0; 47 }
分类:
OJ-CODEVS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App