连续自然数和(洛谷-P1147)
生活随笔
收集整理的這篇文章主要介紹了
连续自然数和(洛谷-P1147)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
對一個給定的自然數?M?,求出所有的連續的自然數段,這些連續的自然數段中的全部數之和為?M?。
例子: 1998+1999+2000+2001+2002=10000?,所以從?1998?到 2002?的一個自然數段為 M=10000?的一個解。
輸入輸出格式
輸入格式:
包含一個整數的單獨一行給出M的值(?10≤M≤2,000,000?)。
輸出格式:
每行兩個自然數,給出一個滿足條件的連續自然數段中的第一個數和最后一個數,兩數之間用一個空格隔開,所有輸出行的第一個按從小到大的升序排列,對于給定的輸入數據,保證至少有一個解。
輸入輸出樣例
輸入樣例#1:
10000
輸出樣例#1:
18 142?
297 328?
388 412?
1998 2002
思路:枚舉每一個 i 對應的 j,當 i 加到 j 總和大于等于 n 時,終止枚舉輸出即可
源代碼
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<string> #include<cstdlib> #include<queue> #include<set> #include<map> #include<stack> #include<ctime> #include<vector> #define INF 0x3f3f3f3f #define PI acos(-1.0) #define N 50001 #define MOD 1e9+7 #define E 1e-6 #define LL long long using namespace std; int main() {int n;cin>>n;for(int i=1;i<=n/2;i++){int j;int sum=0;for(j=i;j<n;j++){sum+=j;if(sum>=n)break;}if(sum==n)cout<<i<<" "<<j<<endl;}return 0; }?
總結
以上是生活随笔為你收集整理的连续自然数和(洛谷-P1147)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暑期训练日志----2018.8.10
- 下一篇: 凌乱的yyy(洛谷-P1803)