笔者:YY同学
文章目录
感谢大家支持本次 IMWPC,也祝愿大家在比赛中取得理想的成绩!!
多组输入(未给出组数)
题目不含有测试数据组数这一项,意味着可能是以一行为单位进行数据读入
- C(未给出组数)
#include<stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
printf("Result: %d\n", n);
}
return 0;
}
- C++(未给出组数)
#include<iostream>
using namespace std;
int main() {
int n;
while (cin >> n) {
cout << "Result: " << n << endl;
}
return 0;
}
- Java(未给出组数)
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
while(input.hasNext()) {
String a = input.next();
System.out.println("Result: " + a);
}
}
}
- Python(未给出组数,假如每行只读入两个数据)
# python, need more than 50 characters
while True:
a,b = map(int, input().split())
print("Result: " + str(a) + " " + str(b))
多组输入(给出组数)
题目有明确说明需要输入一个数字代表有几组数据,此时 n 代表数据的组数
- C(给出组数)
#include<stdio.h>
int main() {
int a, n;
scanf("%d", &n);
for(int k = 0; k < n; ++k){
scanf("%d", &a);
printf("Result: %d\n", a);
}
return 0;
}
- C++(给出组数)
#include<iostream>
using namespace std;
int main() {
int a,n;
cin >> n;
for(int k = 0; k < n; ++k ){
cin >> a;
cout << "Result: " << a << endl;
}
return 0;
}
- Java(给出组数)
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
for(int k = 0; k < n; ++k) {
String a = input.next();
System.out.println("Result: " + a);
}
}
}
- Python(给出组数,假如每组一次只读入两个数据)
# python, need more than 50 characters
n = int(input())
for i in range(0,n):
a,b = map(int, input().split())
print("Result: " + str(a) + " " + str(b))
热身赛A题 - Print A+B
说明:本题题解包含 C、C++、Python 和 Java
- C
// C
#include <stdio.h>
signed main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d", a + b);
return 0;
}
- C++ 11
// C++
#include <iostream>
using namespace std;
signed main()
{
int a, b;
cin >> a >> b;
cout << a + b << endl;
return 0;
}
- Python 3.5
# python, need more than 50 characters
a,b=map(int,input().split())
print(a+b)
- Java(注意 Java 的 class 名字必须使用 Main !!!否则可能会 CE)
// java
import java.io.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int b = input.nextInt();
System.out.println(a+b);
}
}
热身赛B题 - Calculate Fibonacci Numbers
说明:因空间有限,本题仅放 C++ 的题解
// C++
#include <iostream>
using namespace std;
int fib(int r) {
if (r == 0) { return 0; }
else if (r == 1 || r == 2) { return 1; }
else { return fib(r - 1) + fib(r - 2); }
}
signed main()
{
int num;
cin >> num;
cout << fib(num) << endl;
return 0;
}
热身赛C题 - What’s the mass of Molecule
说明:因空间有限,本题仅放 C++ 11 5.3.0 的题解
// C++
#include <iostream>
#include <string>
#include <cstdlib>
#include <iomanip>
using namespace std;
double scores[200];
int main()
{
scores['C'] = 12.01;
scores['H'] = 1.008;
scores['O'] = 16.00;
scores['N'] = 14.01;
int n;
int i, j;
int curNum;
int len;;
double sum = 0;
string s;
cin >> n;
while (n--)
{
sum = 0;
cin >> s;
len = s.length();
for (i = 0; i < len;)
{
if (!isdigit(s[i]))
{
if (i + 1 < len && !isdigit(s[i + 1]))
{
sum += scores[s[i]];
i++;
}
else if (i + 1 < len && isdigit(s[i + 1]))
{
for (j = i + 1; j < len && isdigit(s[j]); ++j)
;
curNum = stoi(s.substr(i + 1, j - (i + 1)));
sum += curNum * scores[s[i]];
i = j;
}
else
{
sum += scores[s[i]];
i++;
}
}
}
cout << fixed << setprecision(3) << sum << endl;
}
return 0;
}