166 条题解
-
37
简单的入门测试题
本题各种语言的程序写法:(不知道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
做出这道题,那么恭喜你踏上了万里征程的第一步!
这是一道适合入门级选手练手的题目,本篇题解为大家介绍 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 }
-
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
A+B Problem
题解+思路
题解
#include <iostream> using namespace std; struct Node { int data; Node *prev; Node *next; Node(int val) : data(val), prev(nullptr), next(nullptr) {} }; Node *createList(int num) { Node *head = nullptr; Node *tail = nullptr; while (num > 0) { int digit = num % 10; Node *newNode = new Node(digit); if (head == nullptr) { head = newNode; tail = newNode; } else { newNode->next = head; head->prev = newNode; head = newNode; } num /= 10; } return head; } Node *addTwoNumbers(Node *num1, Node *num2) { Node *result = nullptr; Node *current = nullptr; int carry = 0; while (num1 != nullptr || num2 != nullptr || carry != 0) { int sum = carry; if (num1 != nullptr) { sum += num1->data; num1 = num1->next; } if (num2 != nullptr) { sum += num2->data; num2 = num2->next; } carry = sum / 10; sum %= 10; Node *newNode = new Node(sum); if (result == nullptr) { result = newNode; current = newNode; } else { current->prev = newNode; newNode->next = current; current = newNode; } } return result; } void printList(Node *head) { if (head == nullptr) { cout << "Empty list" << endl; return; } while (head != nullptr) { cout << head->data; head = head->next; } cout << endl; } void deleteList(Node *head) { while (head != nullptr) { Node *temp = head; head = head->next; delete temp; } } int main() { int num1 = 12345; int num2 = 6789; Node *list1 = createList(num1); Node *list2 = createList(num2); cout << "Number 1: "; printList(list1); cout << "Number 2: "; printList(list2); Node *sumList = addTwoNumbers(list1, list2); cout << "Sum: "; printList(sumList); deleteList(list1); deleteList(list2); deleteList(sumList); return 0; }
思路
- 首先,定义一个双向链表的节点结构体,包含一个整数值和两个指针,分别指向前一个节点和后一个节点。
- 创建两个双向链表,分别表示要相加的两个数字。可以通过遍历输入的整数,从个位开始,逐个创建节点并将其插入链表中。
- 定义一个变量来表示进位,初始值为0。
- 从链表的最后一个节点开始,逐位相加,并将结果存储在新的链表中。具体步骤如下: - 从两个链表的最后一个节点开始,分别取出对应的值,并加上进位。 - 将相加的结果对10取模得到当前位的值,同时更新进位为相加结果除以10的商。 - 创建一个新的节点,将当前位的值存储在该节点中,并将该节点插入到结果链表的头部。 - 分别将两个链表的指针指向上一个节点,继续下一位的相加操作。 - 如果其中一个链表已经遍历完,但另一个链表还有剩余位数,则将剩余位数与进位相加,并将结果插入到结果链表中
- 最后,得到的结果链表即为相加后的结果。
-
0
Python 压行技巧,详细讲一讲:
split
函数,可以将字符串按一定分隔符分割,放在一个list
中。例如,s
是'abc.abcd'
,那么s.split ('.')
就是['abc', 'abcd']
,如果没有参数,默认为' '
;map
函数,可以将一个序列依次进行某个操作的最终序列。例如,a
是[1, 1, 4, 5, 1, 4]
,func
函数定义如下:
那么def func (int x): return x + 1
map (func, a)
就是[2, 2, 5, 6, 2, 5]
。sum
函数,可以求一个序列的和。例如,按照上面的a
,那么sum (a)
就是16
。
最终代码(注释参考样例一,不含注释一行):
print(sum(map(int,input().split()))) #print(sum(map(int, '1 2' .split()))) #print(sum(map(int, ['1', '2'] ))) #print(sum( [1, 2] ))) #print( 2 )
信息
- ID
- 56
- 时间
- 1000ms
- 内存
- 1024MiB
- 难度
- 1
- 标签
- 递交数
- 9734
- 已通过
- 4392
- 上传者