信息学奥赛一本通 1158:求1+2+3+...
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1158:求1+2+3+...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1158:求1+2+3+…
【題目考點】
1. 遞歸
【解題思路】
解法1:遞歸
- 遞歸問題:求1+2+…+k的和
- 遞歸關系:如果想求1+2+…+k的和,需要先求1+2+…+k-1的和,再加上k
- 遞歸出口:1加到1的和為1
解法2:遞推
- 遞推狀態:a[i]為1+2+…+i的和
- 遞推關系:a[i] = a[i-1] + i;
- 初始狀態:a[1] = 1
解法3:迭代
常規做法
【題解代碼】
解法1:遞歸
#include<bits/stdc++.h> using namespace std; int sum(int k)//求1+2+...+k的和 {if(k == 1)return 1;elsereturn k + sum(k - 1); } int main() {int n;cin >> n;cout << sum(n);return 0; }解法2:遞推
#include<bits/stdc++.h> using namespace std; int main() {int n, a[1005];//a[i]:1+2+...+i的和cin >> n;a[1] = 1;for(int i = 2; i <= n; ++i)a[i] = a[i-1] + i;cout << a[n];return 0; }解法3:迭代
#include<bits/stdc++.h> using namespace std; int main() {int n, s = 0;//s:和cin >> n;for(int i = 1; i <= n; ++i)s += i;cout << s;return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1158:求1+2+3+...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为ebgp_BGP选路原则之首选值(华
- 下一篇: 信息学奥赛一本通 2045:【例5.13