170 条题解
-
35
简单的入门测试题
本题各种语言的程序写法:(不知道Hydro有没有这些语言
C
#include <stdio.h> int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n", a+b); return 0; }
C++
#include <iostream> #include <cstdio> using namespace std; int main() { int a,b; cin >> a >> b; cout << a+b << endl; return 0; }
Pascal
var a, b: longint; begin readln(a,b); writeln(a+b); end.
Python2
s = raw_input().split() print int(s[0]) + int(s[1])
Python3
s = input().split() print(int(s[0]) + int(s[1]))
Java
import java.io.*; import java.util.*; public class Main { public static void main(String args[]) throws Exception { Scanner cin=new Scanner(System.in); int a = cin.nextInt(), b = cin.nextInt(); System.out.println(a+b); } }
JavaScript (Node.js)
const fs = require('fs') const data = fs.readFileSync('/dev/stdin') const result = data.toString('ascii').trim().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0) console.log(result) process.exit() // 请注意必须在出口点处加入此行
Ruby
a, b = gets.split.map(&:to_i) print a+b
PHP
<?php $input = trim(file_get_contents("php://stdin")); list($a, $b) = explode(' ', $input); echo $a + $b;
Rust
use std::io; fn main(){ let mut input=String::new(); io::stdin().read_line(&mut input).unwrap(); let mut s=input.trim().split(' '); let a:i32=s.next().unwrap() .parse().unwrap(); let b:i32=s.next().unwrap() .parse().unwrap(); println!("{}",a+b); }
Go
package main import "fmt" func main() { var a, b int fmt.Scanf("%d%d", &a, &b) fmt.Println(a+b) }
C# Mono
using System; public class APlusB{ private static void Main(){ string[] input = Console.ReadLine().Split(' '); Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1])); } }
Visual Basic Mono
Imports System Module APlusB Sub Main() Dim ins As String() = Console.ReadLine().Split(New Char(){" "c}) Console.WriteLine(Int(ins(0))+Int(ins(1))) End Sub End Module
Kotlin
fun main(args: Array<String>) { val (a, b) = readLine()!!.split(' ').map(String::toInt) println(a + b) }
Haskell
main = do [a, b] <- (map read . words) `fmap` getLine print (a+b)
Scala
object Main extends App { println(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum) }
Perl
my $in = <STDIN>; chomp $in; $in = [split /[\s,]+/, $in]; my $c = $in->[0] + $in->[1]; print "$c\n";
文言
施「require('fs').readFileSync」於「「/dev/stdin」」。名之曰「數據」。 施「(buf => buf.toString().trim())」於「數據」。昔之「數據」者。今其是矣。 施「(s => s.split(' '))」於「數據」。昔之「數據」者。今其是矣。 注曰。「「文言尚菜,無對象之操作,故需 JavaScript 之语法」」。 夫「數據」之一。取一以施「parseInt」。名之曰「甲」。 夫「數據」之二。取一以施「parseInt」。名之曰「乙」。 加「甲」以「乙」。書之。
-
2
c++:
# include <bits/stdc++.h> using namespace std; int main() { int a, b; scanf("%d%d", &a, &b); printf("%d", a + b); return 0; }
c++极限两行:
# include <bits/stdc++.h> using namespace std;int main() {int a, b;scanf("%d%d", &a, &b);printf("%d", a + b);return 0;}
python:
# 加;是个人习惯 a, b = map(int, input().split()); print(a + b, end='');
-
1
这道题非常的简单,但是我们可以使用不同的方法做,在完成题目的同时,也可以发散我们的思维。
首先第一步:打头文件
你既可以选择万能头文件
#include<bits/stdc++.h>
也可以选择一般头文件
#include<iostream>
第二步:补充
using namespace std;
第三步:写主函数
int main() { return 0; }
第四步:定义变量
int a,b;
.第五步:思考算法
从这一步开始,你就要开始思考解决这道问题有哪些不同的算法,并开始付诸实践,请看下文。
法一:直接输入,直接输出
#include<iostream> using namespace std; int main() { int a,s; cin>>a>>s; cout<<a+s; return 0; }
法二:利用循环解决
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; int a,b,n=1,c[maxn]; signed main(){ cin>>a>>b; for(int i=1;i<=n;i++){ c[i]+=a+b; } cout<<c[1]; }
法三:利用栈解决 思路很明确,将和入栈,在计算的时候,弹出栈顶,计算。
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; stack<int> s; int a,b,n; signed main(){ cin>>a>>b; s.push(a); s.push(b); while(!s.empty()){ n+=s.top(); s.pop(); } cout<<n; }
法四:利用队列解决 思路很简单,利用队列,输入的时候把入队,在使用的时候,弹出队头再计算。
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; queue<int> s; int a,b,n; signed main(){ cin>>a>>b; s.push(a); s.push(b); while(!s.empty()){ n+=s.front(); s.pop(); } cout<<n; }
法五:利用双端队列解决 思路很清晰,将和一个加入队头,一个加入队尾,使用的时候,将两端分别弹出即可。
#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=100010; deque<int> s; int a,b,n; signed main(){ cin>>a>>b; s.push_front(a); s.push_back(b); cout<<s.front()+s.back(); }
运用不同的方法,解决同一道题目,不仅是收获了快乐,更重要的是发散了思维,熟练了算法。
-
1
做出这道题,那么恭喜你踏上了万里征程的第一步!
这是一道适合入门级选手练手的题目,本篇题解为大家介绍 cin 和 cout 。
cin :标准输入流。
输入:
cin>>变量名;
多个输入:cin>>变量名1>>变量名2……;
cout :标准输出流。
输出变量:
cout<<变量名;
输出单个字符:cout<<'字符';
输出一串字符:cout<<"一串字符";
输出换行:cout<<endl;
本题代码及解析
#include<iostream>//头文件,可调用cin、cout using namespace std;//标准命名空间 int main(){//主函数 int a,b;//定义变量 cin>>a>>b;//输入a,b cout<<a+b;//输出a,b之和 return 0;//返回0 }
-
1
LCT解法
#include <iostream> #include <cstring> #include <cstdio> #include <cstring> using namespace std; struct node { int data,rev,sum; node *son[2],*pre; bool judge(); bool isroot(); void pushdown(); void update(); void setson(node *child,int lr); }lct[233]; int top,a,b; node *getnew(int x) { node *now=lct+ ++top; now->data=x; now->pre=now->son[1]=now->son[0]=lct; now->sum=0; now->rev=0; return now; } bool node::judge(){return pre->son[1]==this;} bool node::isroot() { if(pre==lct)return true; return !(pre->son[1]==this||pre->son[0]==this); } void node::pushdown() { if(this==lct||!rev)return; swap(son[0],son[1]); son[0]->rev^=1; son[1]->rev^=1; rev=0; } void node::update(){sum=son[1]->sum+son[0]->sum+data;} void node::setson(node *child,int lr) { this->pushdown(); child->pre=this; son[lr]=child; this->update(); } void rotate(node *now) { node *father=now->pre,*grandfa=father->pre; if(!father->isroot()) grandfa->pushdown(); father->pushdown();now->pushdown(); int lr=now->judge(); father->setson(now->son[lr^1],lr); if(father->isroot()) now->pre=grandfa; else grandfa->setson(now,father->judge()); now->setson(father,lr^1); father->update();now->update(); if(grandfa!=lct) grandfa->update(); } void splay(node *now) { if(now->isroot())return; for(;!now->isroot();rotate(now)) if(!now->pre->isroot()) now->judge()==now->pre->judge()?rotate(now->pre):rotate(now); } node *access(node *now) { node *last=lct; for(;now!=lct;last=now,now=now->pre) { splay(now); now->setson(last,1); } return last; } void changeroot(node *now) { access(now)->rev^=1; splay(now); } void connect(node *x,node *y) { changeroot(x); x->pre=y; access(x); } void cut(node *x,node *y) { changeroot(x); access(y); splay(x); x->pushdown(); x->son[1]=y->pre=lct; x->update(); } int query(node *x,node *y) { changeroot(x); node *now=access(y); return now->sum; } int main() { scanf("%d%d",&a,&b); node *A=getnew(a); node *B=getnew(b); connect(A,B); cut(A,B); connect(A,B); printf("%d\n",query(A,B)); return 0; }
-
0
#include<iostream> #define 声明32位整型 int #define 左圆括号 ( #define 右圆括号 ) #define 左花括号 { #define 右花括号 } #define 使用 using #define 名字空间 namespace #define 输入 cin>> #define 输出 cout<< #define 和 >> #define 以及 << #define 声明64位整型 long long #define 返回 return #define 加 + 使用 名字空间 std; 声明32位整型 main 左圆括号 右圆括号 左花括号 声明64位整型 a,b; 输入 a 和 b; 输出 a 加 b; 返回 0; 右花括号
-
0
童鞋们你们好!
打开这道题,就相当于你们迈出了万里 OI 路的第一步。让我们重视这一步!
这里提醒同学们:好的代码风格是非常重要的。大家一定要养成良好的代码风格。
来看看我打的代码:
#include<bits/stdc++.h> //万能头 using namespace std; //使用std这个命名空间 int main() { int a, b; //1e6 int够用 cin >> a >> b; //cin = console+input 标准读入 cout << a + b; //cout = console+output 标准输出 return 0; //不要忘了一个华丽的结尾 }
最后想请童鞋们注意:强烈建议
cin
/cout
中<<
/>>
符号前后打一个空格!这样能让你的代码更加美观!这就是我们万里编程路的第一步。在以后的刷题中,大家会遇到更多的难题。希望大家能不忘初心,砥砺前行!
说歪了。感谢观看!
信息
- ID
- 56
- 时间
- 1000ms
- 内存
- 1024MiB
- 难度
- 1
- 标签
- 递交数
- 10152
- 已通过
- 4586
- 上传者