- 题目
-
- C语言
- C++
- Java
- Python
- 暴力枚举
- DFS
- 二分
- 前缀和
- 位运算
题目
输入两个整数,求这两个整数的和是多少。
输入格式
输入两个整数A,B,用空格隔开
输出格式
输出一个整数,表示这两个数的和
数据范围
0≤A,B≤108
样例输入:
3 4
样例输出:
7
C语言
#include
int main(){
int a , b ;
scanf("%d%d" , &a , &b);
printf("%d" , a + b);
}
C++
#include
using namespace std;
int main()
{
int a , b ;
cin >> a >> b;
cout << a + b;
}
Java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws Exception {
Scanner cin=new Scanner(System.in);
var a = cin.nextInt();
var b = cin.nextInt();
System.out.println(a + b);
}
}
Python
###python
print(sum(map(int, input().split())))
暴力枚举
#include
using namespace std;
int main()
{
int a , b ;
cin >> a >> b;
for(int i = 0 ; i <= 200000000 ; i ++){
if(a + b == i){
cout << i ;
break;
}
}
}
DFS
#include
using namespace std;
int a, b;
int dfs(int x) {
if (x <= 5) return x;
return dfs(x / 2) + dfs(x - x / 2);
}
int main() {
scanf("%d%d", &a, &b);
printf("%d\n", dfs(a) + dfs(b));
return 0;
}
二分
#include
using namespace std;
int main()
{
int a , b;
cin >> a >> b;
int l = 0 , r = 200000000;
while(l < r){
int mid = (l + r) / 2;
if(mid == a + b ) {
cout << mid;
return 0;
}
if(mid < a + b) l = mid + 1;
if(mid > a + b) r = mid - 1;
}
cout << l;
return 0 ;
}
前缀和
#include
using namespace std;
int main()
{
int a[2],s[2];
for(int i = 1 ; i <= 2 ; i++){
cin >> a[i];
s[i]=s[i-1]+a[i];
}
cout << s[2];
return 0;
}
位运算
#include
using namespace std;
int add(int a, int b) {
if (b == 0) return a;
return add(a ^ b, (a & b) << 1);
}
int main() {
int a, b; scanf("%d%d", &a, &b);
printf("%d\n", add(a, b));
return 0;
}