1065 A+B and C (64bit) (20 分)
Given three integers A, B and C in [?2?63??,2?63??], you are supposed to tell whether A+B>C.
Input Specification:
The first line of the input gives the positive number of test cases, T (≤10). Then T test cases follow, each consists of a single line containing three integers A, B and C, separated by single spaces.
Output Specification:
For each test case, output in one line Case #X: true
if A+B>C, or Case #X: false
otherwise, where X is the case number (starting from 1).
Sample Input:
3
1 2 3
2 3 4
9223372036854775807 -9223372036854775808 0
Sample Output:
Case #1: false
Case #2: true
Case #3: false
long long 正溢出true(比最大大 肯定大于c) 负溢出false(比最小小,肯定false) 未溢出正常判断
#include<bits/stdc++.h>
using namespace std;
//long long 正溢出true(比最大大 肯定大于c) 负溢出false(比最小小,肯定false) 未溢出正常判断
//不过大数还是掌握住比较好 防患于未然 今天就复习个大数加减法
int main(){long long a,b,c,res;string s;int T;cin>>T;for(int i=1;i<=T;i++){cin>>a>>b>>c;res=a+b;if(a>0&&b>0&&res<=0) s="true";//注意等号 else if(a<0&&b<0&&res>=0) s="false";//注意等号 else if(res>c) s="true";else s="false";cout<<"Case #"<<i<<": "<<s<<endl;}return 0;
}
考点有python3.6.5 pycharm 可以用python(但是一个小学院不一定有) 反正以后大数都用python写一份吧 也正好复习下python基础语法
T = int(input())for i in range(T):a, b, c = map(int, input().split())if a + b > c:print("Case #%d: true" % (i + 1))else:print("Case #%d: false" % (i + 1))
a, b, c = map(int, input().split()) 一行空格输入 a, b, c = map(int, input().split(‘,’))逗号隔开
不过大数还是掌握住比较好 防患于未然
复习:今天写数据结构
#include<bits/stdc++.h>
using namespace std;//数据结构+算法
//1.整数的高位存在数组的高位,低位存在数组的低位(四则运算都是从低位开始的,方便运算)
//2.输入字符串于字符数组内,总是高位存在低位,低位存在高位,因此需要中间函数change()来转换
//3.输出时,逆序输出(先输出高位,再输出低位)const int N=100;
char str[N];struct bign{int d[N];//存放整数各个位的数字 d[0]个位 d[1]十位 d[2]百位 ...int len;//整数长度 bign(){memset(d,0,sizeof(d));//int数字数组d开始全部初始化为0len=0;//初始长度0 }
}; //字符串转大整数 低位存在数组低位 也即逆序转
bign change(char str[]){bign a;a.len=strlen(str);for(int i=0;i<a.len;i++){a.d[i]=str[a.len-i-1]-'0';//减去'0'才将char转int 核心 }return a;
}//比较绝对值大小 a>b 1 a<b -1 a==b 0
int compare(bign a,bign b){if(a.len>b.len) return 1;else if(a.len<b.len) return -1;else{for(int i=a.len-1;i>=0;i--){if(a.d[i]>b.d[i]) return 1;else if(a.d[i]<b.d[i]) return -1;}return 0;//相等 }
}void print(bign a){for(int i=a.len-1;i>=0;i--){printf("%d",a.d[i]);}cout<<endl;
} int main(){cin>>str;bign a=change(str);print(a);cin>>str;bign b=change(str);print(b);cout<<compare(a,b);return 0;
}
明天写加法与减法
后天写乘法与除法
然后不断以T=3 进行循环 从而不再对大数有任何恐惧