GOJ 1053
来源:互联网 发布:淘宝规则有哪些 编辑:程序博客网 时间:2024/06/05 04:47
1053也是一道简单题,用整形数组也是可以做出来的。不过我主要用它来熟悉C++ string库函数的一些用法。
1053题目:
还是A+B
Problem Description:
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,(位数不足前导补0)请直接输出-1。
Input:
测试输入包含若干测试用例,每个测试用例占一行,格式为”A B K”,相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
Output:
对每个测试用例输出1行,即A+B的值或者是-1。
Sample Input:
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
Sample Output:
3
-1
-1
100
主要用到的string中的函数有:
1.获取string的长度,可以用str.size()或str.length().(注意两者返回的是unsign int ,它比int 高级。 unsign int 类型与int 类型的运算该强制转换就强制转换,以避免不必要的错误,比如unsign i=5;cout<<(i-6)%7 << endl;//结果为3。
/#不建议使用strlen(char * )来获取string 的长度,因为strlen接受的参数是char *,需要先将string转换成char数组,即strlen(str.c_str()),c_str()是其一个成员函数,表示将string转换成char数组,这样有点多此一举#/
2.string类的构造函数。这里就只先介绍本题用到的(以后遇到相应的题目,再进行补充): string str(size_type n,char c)。说明:创建一个包含n个元素的string对象str,其中每个元素都被初始化为字符c。
3.string类的插入操作函数。同样insert函数具有不同的重载函数。这里同样只介绍本题用到的: s.insert(pos, str),将str的拷贝插入到s的pos位置,返回s;注意是返回s,也就是s本身已经发生了变化。
4.string类的复制操作。本题使用了str.substr(pos, n)。函数说明:返回str中从pos(默认为0)开始的,有n个字符组成的s的子串的拷贝;注意返回的string 类型,str本身不发生变化。
5.int与string的相互转换。这里暂且只先介绍string转int。
方法一:
使用C语言< stdlib.h>中的atoi(str.c_str())函数,需要先将string类型转为char* 数组指针。
方法二:
使用C++11中的stoi(str)函数,比如 int a=stoi(str); stoi可以转换为十进制、八进制、十六进制和二进制数字,不过在codeblocks上,我选择C++11标准编译器却编译错误,好像只能用VS了。
6.string的compare的使用,这里先介绍简单比较两个字符串是否相等。str1.compare(str2),返回值为正、0、负。0代表相等。
(不足之处,欢迎大家补充!)
AC代码:
#include<iostream>#include<string>#include<stdlib.h>//atoi函数using namespace std;void Changefun(string &str,int k){//处理函数 if(str.size()<k) { int len=k-str.size(); string N_B(len,'0'); str.insert(0, N_B); }}int main(){ string A; string B; int k; while(cin>>A>>B>>k) { if(A=="0"&&B=="0") break; //是否需要补充位数 Changefun(B,k); Changefun(A,k); //比较 if(((A.substr(A.size()-k,k)).compare(B.substr(B.size()-k,k)))==0) cout<<-1<<endl; else {//转换为int类型 int numA = atoi(A.c_str()); int numB = atoi(B.c_str()); cout<<numA+numB<<endl; } } return 0;}
版权声明:本文为博主原创文章,代码仅用于交流和学习!转载请注明出处!
- GOJ 1053
- GOJ 1052
- GOJ 1069
- GOJ 1096
- GOJ 1103
- 7GOJ 偶像 [线段树]
- 7GOJ 计划 [CDQ分治]
- GOJ 1454 计算24点
- 7GOJ 23 fleet [主席树]
- 7GOJ 25 collection [分块][莫队]
- goj 1446 判断栈的输出是否合法
- GOJ 1452(数论+前缀和查询)
- 7GOJ 学院 [连通性][并查集/DFS]
- 7GOJ 24 girls [可持久化Treap--区间操作]
- GOJ 1455 数学(规律模拟递推)
- 1053
- 1053
- hdu 1053
- MYSQL企业常用架构与调优经验分享
- the first_blog
- Python爬虫——模拟登陆爬取csdn页面
- Java学习--基础类和容器
- IntelliJ IDEA 的热部署
- GOJ 1053
- 周小结
- 查看mysql端口
- MongoDB 3.X 用户权限控制
- 反向代理 与 正向代理
- Java学习--异常、多线程和输入输出流
- Intellij IDEA的快捷键、常用技巧和相关设置
- 15算法课程 119. Pascal's Triangle II
- java集合框架分析