0
已解决
刘乐宸
新手天翼
新手天翼
题目描述 Description
给定两个数a,b,求a和b的和。(a,b的绝对值均小于20000000)
输入描述 Input Description
输入只有一行a和b,两个数之间用空格隔开。
输出描述 Output Description
输出a+b的值。
样例输入 Sample Input
3 2
样例输出 Sample Output
5
为啥我50分???
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int a, b;
void print(int ans) {
printf("%d", ans);
}
void dfs(int &a, int &b, int ans, int tot) {
if(tot==1) {
print(ans);
return;
}
vector<int> v;
v.push_back(a), v.push_back(b);
for(int i=1; i<=v.back(); i++) ans++;
v.pop_back();
for(int i=1; i<=v.back(); i++) ans++;
dfs(a, b, ans, tot+1);
}
int main() {
scanf("%d%d", &a, &b);
dfs(a, b, 0, 0);
return 0;
}
刘乐宸在2021-08-04 14:10:22追加了内容
顶
2
已采纳
陈曦
资深天翼
资深天翼
队列的下表不是从0开始吗。
你是WA50、TLE50、RE50 还是 MLE50?
陈曦在2021-08-04 14:21:19追加了内容
@刘乐宸 建议你把输出的那个函数删掉,改成直接输出,没准可以减少一些时间复杂度。
5
1
0
0
武建豪
中级天翼
中级天翼
0
武建豪
中级天翼
中级天翼
C
#include <stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
p**ntf("%d\n", a+b);
ret**n 0;
}
C++
#include <iostream>
#include <**tdio>
using name** std;
int main()
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
ret**n 0;
}
Pascal
var a, b: longint;
begin
readln(a,b);
w**teln(a+b);
end.
Python2
s = raw_input().split()
p**nt int(s[0]) + int(s[1])
Python3
s = input().split()
p**nt(int(s[0]) + int(s[1]))
Java
import java.io.*;
import java.util.*;
public class Main {
public static void main(St**ng args[]) th**ws Exception {
Scanner cin=new Scanner(**.in);
int a = cin.nextInt(), b = cin.nextInt();
**.out.p**ntln(a+b);
}
}
JavaSc**pt (Node.js)
const fs = require('fs')
const data = fs.readFileSync('/dev/stdin')
const result = data.toSt**ng('ascii').t**m().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0)
console.log(result)
p**cess.exit() // 请注意必须在出口点处加入此行
Ruby
a, b = gets.split.map(&:to_i)
p**nt a+b
PHP
<?php
$input = t**m(file_get_contents("php://stdin"));
list($a, $b) = explode(' ', $input);
echo $a + $b;
Rust
use std::io;
fn main(){
let mut input=St**ng::new();
io::stdin().read_line(&mut input).unwrap();
let mut s=input.t**m().split(' ');
let a:i32=s.next().unwrap()
.parse().unwrap();
let b:i32=s.next().unwrap()
.parse().unwrap();
p**ntln!("{}",a+b);
}
Go
package main
import "fmt"
func main() {
var a, b int
fmt.Scanf("%d%d", &a, &b)
fmt.P**ntln(a+b)
}
C# Mono
using **;
public class APlusB{
p**vate static void Main(){
st**ng[] input = Console.ReadLine().Split(' ');
Console.W**teLine(int.Parse(input[0]) + int.Parse(input[1]));
}
}
Visual Basic Mono
Imports **
Module APlusB
Sub Main()
Dim ins As St**ng() = Console.ReadLine().Split(New Char(){" "c})
Console.W**teLine(Int(ins(0))+Int(ins(1)))
End Sub
End Module
Kotlin
fun main(args: Array<St**ng>) {
val (a, b) = readLine()!!.split(' ').map(St**ng::toInt)
p**ntln(a + b)
}
Haskell
main = do
[a, b] <- (map read . words) `fmap` getLine
p**nt (a+b)
Scala
object Main extends App {
p**ntln(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum)
}
Perl
my $in = <STDIN>;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
p**nt "$c\n";
文言
施「require('fs').readFileSync」於「「/dev/stdin」」。名之**「數據」。
施「(buf => buf.toSt**ng().t**m())」於「數據」。昔之「數據」者。今其是矣。
施「(s => s.split(' '))」於「數據」。昔之「數據」者。今其是矣。
注**。「「文言尚菜,無對象之**作,故需 JavaSc**pt 之语法」」。
夫「數據」之一。取一以施「parseInt」。名之**「甲」。
夫「數據」之二。取一以施「parseInt」。名之**「乙」。
加「甲」以「乙」。書之。
0
0
0
0
0
0
0
0
0
李沫朴
新手天翼
新手天翼
- #include <iostream> #include <cstdio> using namespace std; long long a,b; int main(){ cin>>a>>b; cout<<a+b; return 0; //freopen("1291.in","r",stdin); //freopen("1291.out","w",stdout); //fclose(stdin); //fclose(stdout); }
0
0
0
e的x次幂
高级守护
高级守护
int a, b;
cin>>a>>b;
cout<<a+b;
3行代码不香吗,整个高精度有啥用,int就够了
|a| <= 20000000, |b| <= 20000000
绝对值不等式
|a+b| ≤ |a|+|b| ≤ 20000000 + 20000000 = 40000000 < MAX_INT = 2^31-1
e的x次幂在2021-08-01 23:53:06追加了内容
好像是i=1 i<=v.back()错了吧?vector下标从0开始的
0
0
0
0
0