Official

A - Count Down Editorial by m_99


プログラミングの学習を始めたばかりで何から手をつけるべきかわからない方は、まずは「practice contest」(https://atcoder.jp/contests/practice/) の問題A「Welcome to AtCoder」をお試しください。言語ごとに解答例が掲載されています。
また、プログラミングコンテストの問題に慣れていない方は、「AtCoder Beginners Selection」(https://atcoder.jp/contests/abs) の問題をいくつか試すことをおすすめします。
「競プロ典型 90 問」(https://atcoder.jp/contests/typical90) では、プログラミングコンテストで扱われる典型的な 90 問の問題に挑戦可能です。
「C++入門 AtCoder Programming Guide for beginners (APG4b)」(https://atcoder.jp/contests/APG4b) は、競技プログラマー向けのC++入門用コンテンツです。


ある処理を \(N\) 回繰り返す、というのはC++ではfor文を用いて以下のように書けます。

for(int i=0;i<N;i++){
	//N回繰り返したい処理
}

また、{}で囲われた内部では変数 \(i\) の値が \(0,1,\ldots,N-1\) となり、処理中で利用することができます。
そこで、

for(int i=0;i<N+1;i++){
	cout<<N-i<<endl;
}

とすると \(i=0,1,\ldots,N\) に対して順番に \(N-i\) の値を出力することができ、本問の目的を達成できます。( \(N\) 以下の非負整数は \(N+1\) 個あるため、処理が \(N+1\) 回行われるように制御文を変えてあります)

あるいは、for文の処理の流れを考えると

for(int i=N;i>=0;i--){
	cout<<i<<endl;
}

とすれば \(i\)\(N,N-1,\ldots,0\) となるため、単に \(i\) と出力すればよくなります。

実装例 (C++)

#include <bits/stdc++.h>
using namespace std;

int main() {

	int N;
	cin>>N;
	
	for(int i=N;i>=0;i--){
		cout<<i<<endl;
	}
	
	return 0;

}

posted:
last update: