AtCoder Programming Guide for beginners (APG4b)から、「第1章 基本文法」の提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
「競技プログラミング」を略して、「競プロ」などと呼ばれています。
AtCoder Programming Guide for beginners (APG4b)
atcoder.jp
僕が作成、提出したコードは、以下のとおりです。
/* AtCoder Programming Guide for beginners (APG4b) in C++ #A - 1.00.はじめに https://atcoder.jp/contests/APG4b/tasks/APG4b_a 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include <bits/stdc++.h> using namespace std; int main() { cout << "Hello, world!" << endl; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX1. 1.01 - コードテストと出力の練習 https://atcoder.jp/contests/APG4b/tasks/APG4b_cv 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ cout<<"こんにちは"<<endl; cout<<"AtCoder"<<endl; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX2. 1.02 - エラーの修正 https://atcoder.jp/contests/APG4b/tasks/APG4b_cv 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ cout<<"いつも2525"<<endl; cout<<"AtCoderくん"<<endl; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX3. 1.03 - 計算問題 https://atcoder.jp/contests/APG4b/tasks/APG4b_ct 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ double n=0.5; cout<<100*(100+1)*n<<endl; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX4. 1.04 - ◯年は何秒? https://atcoder.jp/contests/APG4b/tasks/APG4b_cs 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int s1=365*24*60*60; cout<<s1<<endl; cout<<s1*2<<endl; cout<<s1*5<<endl; cout<<s1*10<<endl; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX5. 1.05 - A足すB問題 https://atcoder.jp/contests/APG4b/tasks/APG4b_cr 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b; cin>>a>>b; cout<<a+b<<endl; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX6. 1.06 - 電卓をつくろう https://atcoder.jp/contests/APG4b/tasks/APG4b_cq 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b; char op; cin>>a>>op>>b; if(op=='+'){ cout<<a+b<<endl; }else if(op=='-'){ cout<<a-b<<endl; }else if(op=='*'){ cout<<a*b<<endl; }else if(op=='/'){ if(b==0){ cout<<"error"<<endl; }else{ cout<<a/b<<endl; } }else{ cout<<"error"<<endl; } return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX7. 1.07 - bool値パズル https://atcoder.jp/contests/APG4b/tasks/APG4b_cp 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include <bits/stdc++.h> using namespace std; int main(void){ bool a=true; bool b=false; bool c=true; //aがtrueであれば、"At"と表示 if(a){ cout<<"At"; }else{ cout<<"Yo"; } //bがfalse または cがtrueであれば、"Co"と表示 if(!a && b){ cout<<"Bo"; }else if(!b || c){ cout<<"Co"; } //aがfalse または cがtrueであれば、"der"と表示 if(a && b && c){ cout<<"foo!"<<endl; }else if(true && false){ cout<<"yeah"<<endl; }else if(!a || c){ cout<<"der"<<endl; } //以上の条件を満たすのは、a=true,b=false,c=trueの時である。 return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX8. 1.08 - たこ焼きセット https://atcoder.jp/contests/APG4b/tasks/APG4b_co 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int pat,price,n; string text; cin>>pat; if(pat==1){ cin>>price>>n; cout<<price*n<<endl; }else if(pat==2){ cin>>text>>price>>n; cout<<text<<"!"<<endl; cout<<price*n<<endl; } return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX9. 1.09 - 複合代入演算子を使おう https://atcoder.jp/contests/APG4b/tasks/APG4b_cn 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int x,a,b,ans1,ans2,ans3,ans4; cin>>x>>a>>b; x++; ans1=x; ans2=ans1*(a+b); ans3=ans2*ans2; ans4=ans3-1; cout<<ans1<<endl; cout<<ans2<<endl; cout<<ans3<<endl; cout<<ans4<<endl; return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX10. 1.10 - 棒グラフの出力 https://atcoder.jp/contests/APG4b/tasks/APG4b_cm 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b,i; cin>>a>>b; //Aさんの点数を出力 cout<<"A:"; i=0; while(i<a){ cout<<"]"; i++; } cout<<endl; //Bさんの点数を出力 cout<<"B:"; i=0; while(i<b){ cout<<"]"; i++; } cout<<endl; return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX11. 1.11 - 電卓をつくろう2 https://atcoder.jp/contests/APG4b/tasks/APG4b_cl 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,a; cin>>n>>a; int ans=a; vector<char> op(n); vector<int> b(n); for(int i=0;i<n;i++){ cin>>op[i]>>b[i]; if(op[i]=='+'){ ans+=b[i]; cout<<i+1<<":"<<ans<<endl; }else if(op[i]=='-'){ ans-=b[i]; cout<<i+1<<":"<<ans<<endl; }else if(op[i]=='*'){ ans*=b[i]; cout<<i+1<<":"<<ans<<endl; }else if(op[i]=='/'){ if(b[i]==0){ cout<<"error"<<endl; break; }else{ ans/=b[i]; cout<<i+1<<":"<<ans<<endl; } } } return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX12. 1.12 - 足したり引いたり https://atcoder.jp/contests/APG4b/tasks/APG4b_ck 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s; cin>>s; int sl=s.length(); int plus=0,minus=0; //plusは"+"の個数,minusは"-"の個数 for(int i=0;i<sl;i++){ if(s[i]=='+'){ ++plus; }else if(s[i]=='-'){ ++minus; } } cout<<plus-minus+1<<endl; return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX13. 1.13 - 平均との差 https://atcoder.jp/contests/APG4b/tasks/APG4b_cj 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,sum=0; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; sum+=a[i]; } sum/=n; for(int i=0;i<n;i++){ if(sum>a[i]){ cout<<sum-a[i]<<endl; }else{ cout<<a[i]-sum<<endl; } } return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX14. 1.14 - 三人兄弟の身長差 https://atcoder.jp/contests/APG4b/tasks/APG4b_ci 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b,c; cin>>a>>b>>c; int ma0=max(a,b); int ma=max(ma0,c); int mi0=min(a,b); int mi=min(mi0,c); cout<<ma-mi<<endl; return 0; }
/* AtCoder Programming Guide for beginners (APG4b) in C++ #EX15. 1.15 - 三人兄弟へのプレゼント https://atcoder.jp/contests/APG4b/tasks/APG4b_ch 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,sa=0,sb=0,sc=0; cin>>n; vector<int> a(n),b(n),c(n); for(int i=0;i<n;i++){ cin>>a[i]; sa+=a[i]; } for(int i=0;i<n;i++){ cin>>b[i]; sb+=b[i]; } for(int i=0;i<n;i++){ cin>>c[i]; sc+=c[i]; } cout<<sa*sb*sc<<endl; return 0; }
AtCoder Beginner Contestは、オンラインジャッジによるプログラミングコンテストです。
日本語と英語に対応していて、週末ごとに実施されているみたいです。
https://practice.contest.atcoder.jp/tutorial
アカウントを登録すれば、誰でも参加できます。