noip2011普及组复赛——数字反转
2015-07-21 22:30
507 查看
策略:首先这是一道初中题,简单的旋转放入数组,不需太多技巧,粗暴解决。但值得注意的是负号的处理和末尾零的处理,负号可以先省去,结尾再添上,末尾零在倒转后在略去,不多说,上码。
#include <stdio.h> int main() { int n,i=1,a[100]; int t; int x=0; //freopen("reverse.in","r",stdin); //freopen("reverse.out","w",stdout); scanf("%d",&n); if(n==0) printf("0"); else { if(n<0) //若是负数,变为正数,并标记 { n=-n; x=1; } a[0]=0; //a[0]标记位数 while(1) //进入循环从末尾换到数组前位,逐个处理,直到n为0,退出循环 { t=n%10; n=n/10; a[i]=t; a[0]=a[0]+1; i++; if(n==0) break; } while(1) { if(a[1]==0) { for(i=1;i<a[0];i++) //若转换后前位数为零,将整个数组向前挪一位 { a[i]=a[i+1]; } a[0]=a[0]-1; } else break; } if(x==1) printf("-"); for(i=1;i<=a[0];i++) { printf("%d",a[i]); } } return 0; }
相关文章推荐
- sqlite实现新闻收藏和取消收藏
- 观察者模式--------设计模式一
- Android中添加水平线和垂直线
- Multi-threading Model: My Interesting Part in Android
- OpenGIS全面综述
- Python生成器的工作过程
- 冒泡排序实例
- 【bzoj1283】 序列 费用流
- 数据仓库技术及其演变
- asp.net 如何配置authentication,完成基于表单的身份验证
- vs 2015
- 绑定下拉框
- oracle数据库导入导出命令!
- 设定软件使用期限,根据网络时间保护试用软件产品的方法
- Java中的引用类型
- 关于值栈
- Microsoft Dynamics CRM 2013 竞争对手 介绍
- Microsoft Dynamics CRM 2013 竞争对手 介绍
- 2015.07.21总结
- linux /etc/init.d/functions详解