SDUSTOJ Problem G: 整数的封装(该题目要注意尽量不要使用pow函数)
2016-03-11 19:12
417 查看
Description
现在,请编写一个Integer类,将整数封装起来。目前,只需要你来实现最基本的功能:1. 具有2个构造函数:
(1)Integer::Integer(int):根据参数构建一个整数对象。
(2)Integer::Integer(char*, int):根据给定的字符串和进制来构建一个整数对象。
2. 具有一个int Integer::getValue()方法,用于返回Integer类中所封装的整数的具体数值。
Input
输入分为多行。第一行是一个正整数M,表示其后面的M行为M个整数,每行一个整数。
第M+2行是一个正整数N,表示其后有N行。每行由利用一个空格隔开的2部分组成:前半部分是一个字符串,后半部分是该字符串所使用的进制。
注意:
1. 所有的输入,均在int类型的表示范围内,且所有的输入均为合法输入。
2. 利用0~9和a~z可最大可以表示36进制的数值。
Output
输出为M+N行,每行为一个十进制整数,且输出顺序应与输入顺序相同。Sample Input
2999-199940111 21a 16z 36a 16Sample Output
999-19997263510HINT
Append Code
append.cc,#include<iostream> #include<cstring> #include<iomanip> using namespace std; class Integer{ private: int val; public: Integer(int n):val(n){} Integer(char*, int); int getValue() { return val; } }; Integer::Integer(char* c, int t) { int length=strlen(c); val=0; int a; char ch[101]; strcpy(ch,c); if(ch[0]=='-') { for(a=1;a<length;a++) { int num; char tmp=ch[a]; if(tmp>='0'&&tmp<='9') { num=tmp-'0'; val=val*t+num; } else if(tmp>='a'&&tmp<='z') { num=tmp-'a'+10; val=val*t+num; } else if(tmp>='A'&&tmp<='Z') { num=tmp-'A'+10; val=val*t+num; } } val=0-val; } else { for(a=0;a<length;a++) { int num; char tmp=ch[a]; if(tmp>='0'&&tmp<='9') { num=tmp-'0'; val=val*t+num; } else if(tmp>='a'&&tmp<='z') { num=tmp-'a'+10; val=val*t+num; } else if(tmp>='A'&&tmp<='Z') { num=tmp-'A'+10; val=val*t+num; } } } } int main() { char str[100]; int numOfData, numOfStr; int data, i, radix; cin>>numOfData; for (i = 0; i < numOfData; i++){ cin>>data; Integer anInteger(data); cout<<anInteger.getValue()<<endl; } cin>>numOfStr; for (i = 0; i < numOfStr; i++){ cin>>str>>radix; Integer anInteger(str,radix); cout<<anInteger.getValue()<<endl; } return 0; }
相关文章推荐
- 第三周项目2 本月有几天?
- 选点问题
- PAT (Advanced Level) Practise 1049 Counting Ones (30)
- 写给2017年的自己
- iOS_Block详解1
- UVA10700求只有加法和减法的表达式的最大值和最小值
- 第3周项目输出星号a
- SDUSTOJ Problem F: 一元二次方程类
- 怎么修改Elasticsearch的对外ip 默认是本地IP 127.0.0.1
- eclipe che 体验中
- iOS单利模式透析
- HashMap和Hashtable的区别
- 用编程的方式定义UI界面
- 异常语句的学习
- 无题
- iOS--自定义系统控件
- 面试后一点反思和毕设计划
- qt显示RGB彩色图
- Nmap扫描教程之DNS服务类
- UVA 1262