给你100块钱

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

小光见到昨晚旭能神没拿到一血,又损失了一百块,很同情他。但是为了不表现出自己在同情他,于是对他说:“我最近碰到了难题,一直没有AC,如果你能第一个帮我AC掉,我就给你100块钱。题目就是:给定一个实数,输出它的相反数。”

Input:

输入包含多组测试数据,每组数据包含一个实数(100位以内)。输入的数据最多只包含一个负号。

Output:

对于每组数据,输出它的相反数,占一行。

Sample Input:

0
-0.1
00.10

Sample Output:

0
0.1
-0.1
解题思路:处理字符串,各种情况要面面俱到。很容易想到,用另外的数组a来保存相反数,每一次输入都将a数组元素全部赋为'\0',这有利于直接输出最后的新字符串。先判断第一个字符是否为'-',是的话先用flag标记true,然后去掉前导0,之后要判断i==len?表示全部为0(包含'-'、'+'、'.',但其实表示的是0)接下来判断是否有小数点,有点话就去掉尾部的0。剩下的分4种情况:
一、当s[i]!='.'时,如果flag为false,则a[k++]='-'先标记负号;①如果s[j]!='.',直接从i~j拷贝给a数组;②否则,先--j,去掉多余的'.',对剩下的整数部分进行拷贝;
二、当s[i]=='.'时,同样如果flag为false,则a[k++]='-'先标记为负号;③如果s[j]!='.',先把0给整数部分,接下来直接拷贝i~j即可;④否则说明此时相当于0,直接a[k]='0'即可。
AC代码:
 #include<bits/stdc++.h>
using namespace std;
bool ispoint(char ch[],int len){ //用来判断是否有小数点,这样才可以去掉尾部多余的0
for(int i=;i<len;++i)
if(ch[i]=='.')return true;
return false;
}
int main()
{
char s[],a[];
int i,j,k,len;
bool flag;
while(cin>>s){
memset(a,'\0',sizeof(a));
k=i=;len=strlen(s);flag=false;
if(s[i]=='-'){flag=true;++i;}
while(s[i]=='')++i;
if(i==len){ //判断是否都为0的情况
cout<<""<<endl; //是的话直接输出0
continue; //继续输入
}
j=len-;
if(ispoint(s,len)){ //有小数点的话才去掉后导0
while(s[j]=='')--j;
}
if(s[i]!='.'){
if(!flag)a[k++]='-';
if(s[j]!='.'){
while(i<=j)a[k++]=s[i++];
}
else{
--j;
while(i<=j)a[k++]=s[i++];
}
}
else{ //表示当前为'.'
if(s[j]!='.'){
if(!flag)a[k++]='-';
a[k++]='';
while(i<=j)a[k++]=s[i++];
}
else a[k]=''; //直接赋值为'0'
}
cout<<a<<endl;
}
return ;
}
测试数据:输入:.1  00  -.2  10  -0.0  0.0
对应的输出:-0.1 0 0.2  -10  0 0

ACM_给你100块钱的更多相关文章

  1. 报表软件公司悬赏 BUG,100块钱1个的真实用意

    上一篇文章我讲到,报表软件FineReport一反常态,做了个<提BUG,拿现金>的活动,1个BUG,100块钱.纵览软件行业,如金蝶用友浪潮IBM微软等国内外巨头,均没有这样的举动去征集 ...

  2. 后台开发 3个题目 array_chunk, 100块钱找零钱(动态规划 dynamic programming), 双向循环链表 llist 删除节点

    1. array_chunk 实现 http://php.net/manual/en/function.array-chunk.php <?php function my_array_chunk ...

  3. 报表软件公司高价悬赏BUG,100块1个我真是醉了

    一直在用帆软的报表软件FineReport来做项目,也一直关注着这个公司的发展. 看到<提BUG,拿奖金>的这个活动,有些疑问和思考. 一般FineReport新版本在正式发布前,都会经过 ...

  4. JAVA题目:小芳的妈妈每天给她2.5元,她都会存起来,但是,每当这一天是存钱的第五题或者5的倍数的话,她都会去用掉6块钱。 问:至少经过多少天可以存到100块?

    1 /*题目:小芳的妈妈每天给她2.5元,她都会存起来, 2 但是,每当这一天是存钱的第五题或者5的倍数的话, 3 她都会去用掉6块钱. 4 问:至少经过多少天可以存到100块? 5 */ 6 /*分 ...

  5. 为了讲明白继承和super、this关键字,群主发了20块钱群红包

    摘要:以群主发红包为例,带你深入了解继承和super.this关键字. 本文分享自华为云社区<群主发红包带你深入了解继承和super.this关键字>,作者:共饮一杯无 . 需求 群主发随 ...

  6. 大三那年在某宝8块钱买的.NET视频决定了我的职业生涯

    前言 谨以此文献给那些还在大学中迷茫的莘莘学子们! 韩愈在<师说>中提出了作为师者应该做的三件事:传道.授业.解惑. 1.传道:培养学生的道德观 2.授业:传授学生专业技能 3.解惑:解答 ...

  7. 自己做站点(二) 20块钱搞定一个企业站:域名&amp;空间申请

    域名注冊的话,推荐大家用新网,由于申请费用确实非常低,但续费的价格还是比較高的,所以不妨多申请几年.打开站点: http://www.xinnet.com/ 注冊一个帐号,然后申请域名,你能够看到,费 ...

  8. 磐创AI GPU租用平台上线,1小时不到1块钱

    >> 小白也能看懂的PyTorch从入门到精通系列 << 今天磐创AI GPU租赁平台上线了!!!为大家解决用GPU难的问题!一块10G显存的GPU,1小时租用费用不到1块钱, ...

  9. JS计算十万块钱 分31期 利息万分之五 每个月的还款数

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 避免使用vector&lt;bool&gt;

     作为一个STL容器,vector<bool>仅仅有两点不正确. 首先.它不是一个STL容器. 其次,它并不存储bool.除此之外.一切正常. 一个对象要成为容器,就必须满足C++标准 ...

  2. 【剑指Offer】俯视50题之21 - 30题

    面试题21包括min函数的栈  面试题22栈的压入.弹出序列  面试题23从上往下打印二叉树  面试题24二叉搜索树的后序遍历序列  面试题25二叉树中和为某一值的路径  面试题26复杂链表的复制  ...

  3. MySQL 当记录不存在时插入,当记录存在时更新

    第一种: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: INSERT INTO clients (client_id,client_name ...

  4. hdoj-1242-Rescue【广搜+优先队列】

    Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  5. Unity5.1 新的网络引擎UNET(八) UNET 系统概括

     孙广东   2015.7.12 Server and Host 在Unity 的 网络系统,游戏有 一个server和多个client. 当没有专用的server时,client之中的一个扮演s ...

  6. RabbitMQ通过shovel插件迁移数据

    前言 生产环境中会遇到RabbitMQ数据迁移的场景,例如:切换云服务厂商.不同Region之间数据迁移.新搭建RabbitMQ实例,数据需要同步至新的RabbitMQ实例. 前提条件: 源Rabbi ...

  7. 当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层

    1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: ...

  8. Nyquist–Shannon sampling theorem 采样定理

    Nyquist–Shannon sampling theorem - Wikipedia https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_s ...

  9. 网络驱动移植之例解netdev_priv函数

    版权声明:本文为博主原创文章,未经博主允许不得转载. 开发平台:Ubuntu 11.04 编译器:gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 内核 ...

  10. Serializable and XmlEnum

    The easiest way is to use [XmlEnum] attribute like so: [Serializable] public enum EnumToSerialize { ...