paiza×Qiita記事投稿キャンペーンということで、まずはpaizaラーニングレベルアップ問題集Dランク問題をやってみました。
足し算
-
Python3
a, b = map(int, input().split()) print(a + b)
- Python3では、標準入力から半角空白で区切られた2個の整数を受け取るには
a,b=map(int,input().split())
として受け取ります。 - 2個の整数の和を
a+b
として、標準出力に出力(print
)します。
- Python3では、標準入力から半角空白で区切られた2個の整数を受け取るには
一番小さい値
-
Python3
n = [0] * 5 for i in range(5): n[i] = int(input()) print(min(n))
- Python3では、要素数5の整数型一次元配列を宣言するには
n=[0]*5
とします。 - その後、$i=0,1,2,3,4$(配列添字は0から始まります)に対して、標準入力から整数として受け取ります。
-
for i in range(5):
で、$i=0,1,2,3,4$($5$は含まれない)に対してn[i]=int(input())
が実行されます。
-
- 配列要素の最小値を求めるには
min
関数を使います。 - 最初の値を仮の最小値として受け取り、最小値を更新していく方法もあります。
ans = int(input()) # 最初に受け取る整数値を暫定最小値とする for i in range(4): # 残り4個の整数値を受け取る num = int(input()) if num < ans: # 小さい値が来たら更新 ans = num print(ans)
- Pythonでは、以下のように内包表記を使って一行で書くこともできます。
print(min(int(input()) for _ in range(5)))
- Python3では、要素数5の整数型一次元配列を宣言するには
文字の一致
-
Python3
a = input() b = input() if a == b: print("OK") else: print("NG")
- 2つの文字列を受け取り、一致すれば
OK
、一致しなければNG
を出力します。 - 言語によっては、
==
演算子では文字列の一致を比較できない言語があります。
- 2つの文字列を受け取り、一致すれば
-
C
#include <stdio.h> #include <string.h> int main() { char a[101]; scanf("%s", a); char b[101]; scanf("%s", b); if (strcmp(a, b) == 0) { //a==bでは文字列の一致性を比較できない puts("OK"); } else { puts("NG"); } return 0; }
-
Java
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.nextLine(); String b = sc.nextLine(); if (a.equals(b)) {// equalsを使う System.out.println("OK"); } else { System.out.println("NG"); } sc.close(); } }
-
C++
#include <iostream> #include <string> using namespace std; int main() { string a; cin >> a; string b; cin >> b; cout << (a == b ? "OK" : "NG") << endl; return 0; }
- C++で
std::cout
を使って三項演算子の結果を変数に代入しないで直接出力する場合、三項演算の部分(<<
と<<
の間)は括弧で囲まないと、演算子の優先順位の関係でエラーになります。
- C++で
Eメールアドレス
-
Python3
s = input() t = input() print(s + '@' + t)
- 文字列を結合するには
+
演算子を使います。
s = input() t = input() print("%s@%s" % (s, t))
- 書式設定して出力します。
- 文字列を結合するには
-
C++
#include <iostream> #include <string> using namespace std; int main() { string s; cin >> s; string t; cin >> t; cout << s << "@" << t << endl; return 0; }
- 標準入力から2つの文字列(ローカル部とドメイン)を受け取った後、標準出力にローカル部⇒@⇒ドメインを順番に出力していきます。
N倍の文字列
-
Python3
n = int(input()) print('*' * n)
- Pythonでは、
文字列*整数
で、文字列を整数回繰り返した文字列を生成します。
- Pythonでは、
-
C++
#include <iostream> using namespace std; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cout << '*'; } cout << endl; return 0; }
-
for
ループで、*
を指定回数繰り返して出力します。
#include <iostream> #include <string> using namespace std; int main() { int n; cin >> n; string s(n, '*'); cout << s << endl; return 0; }
-
string s(n,'*');
で、文字列変数s
に*
をn
回繰り返した文字列が代入されます。
-