アルゴ式(beta版)の「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列からの出典です。
algo-method.com
アルゴ式とは...
>・プログラミングや情報科学をコツコツ学べる「教科書」
>・学んだ内容をゲーム感覚で大量に実践できる「練習問題」
>の2つで構成される、Web上で完結した学習コンテンツです。
Q6-3-1. 500 円玉貯金
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-1. 500 円玉貯金 https://algo-method.com/tasks/649 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n,x; cin>>n>>x; for(ll i=0;i<=n;i++){ cout<<x+i*500<<endl; } return 0; }
Q6-3-2. 貯金計画
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-2. 貯金計画 https://algo-method.com/tasks/650 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll a,b,x,y; cin>>a>>b>>x>>y; cout<<x-(y-x)/(b-a)*a<<endl; return 0; }
Q6-3-3. 等差数列の和 (1)
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-3. 等差数列の和 (1) https://algo-method.com/tasks/652 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n; cin>>n; cout<<n*(n+1)/2<<endl; return 0; }
Q6-3-4. 等差数列の和 (2)
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-4. 等差数列の和 (2) https://algo-method.com/tasks/653 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n,x,d; cin>>n>>x>>d; ll sum=0; for(ll i=1;i<=n;i++){ sum+=(x+(i-1)*d); } cout<<sum<<endl; return 0; }
Q6-3-5. 2 乗和
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-5. 2 乗和 https://algo-method.com/tasks/654 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n; cin>>n; cout<<n*(n+1)*(2*n+1)/6<<endl; return 0; } // N 1 // ∑ n^2 = ー N(N+1)(2N+1) //n=1 6
Q6-3-6. 栗まんじゅう問題
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-6. 栗まんじゅう問題 https://algo-method.com/tasks/651 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n=1; for(ll i=0;i<=20;i++,n*=2){ cout<<n<<endl; } return 0; }
Q6-3-7. 等比数列の和 (1)
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-7. 等比数列の和 (1) https://algo-method.com/tasks/655 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; ll my_pow(ll n){ ll r=1; for(ll i=1;i<=n;i++){ r*=2; } return r; } int main(void){ ll n; cin>>n; cout<<my_pow(n)-1<<endl; return 0; }
Q6-3-8. 等比数列の和 (2)
/* C++による「設計技法とデータ構造 (#毎日アルゴ式)」プログラミングで学ぶ数学 (3) 等差数列と等比数列 Q6-3-8. 等比数列の和 (2) https://algo-method.com/tasks/656 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; const ll mod=1000000000; int main(void){ ll n,x,r; cin>>n>>x>>r; ll ans=1; for(ll i=0;i<n;i++){ ans=(ans*r)%mod; } if(ans==0){ ans=mod; } ans--; ans=(ans*x)%mod; cout<<ans<<endl; return 0; }
設問の出典は、情報科学をコツコツ積み立てて学習できるサービス「アルゴ式(beta版)」です。
algo-method.com