日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

输出序列和

發布時間:2024/4/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 输出序列和 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

給出一個正整數N和長度L,找出一段長度大于等于L的連續非負整數,他們的和恰好為N。答案可能有多個,我們需要找出長度最小的那個。
例如 N = 18 L = 2:
5 + 6 + 7 = 18
3 + 4 + 5 + 6 = 18
都是滿足要求的,但是我們輸出更短的 5 6 7
輸入描述:
輸入數據包括一行: 兩個正整數N(1 ≤ N ≤ 1000000000),L(2 ≤ L ≤ 100)
輸出描述:
從小到大輸出這段連續非負整數,以空格分隔,行末無空格。如果沒有這樣的序列或者找出的序列長度大于100,則輸出No
示例1
輸入:
18 2
復制
輸出:
5 6 7

思路:

/* 等差數列求和: N為已知,只需要根據l來求得a那么在代碼實現時, 我們可以從L開始,依次遍歷所有l的可能(從L到100),并檢查相應求得的數值是否為整數即可。 因為l從小到大,那么一定先找到的是長度最小的。 */ #include<iostream> using namespace std; int main() {int N, L;cin>>N>>L;for(int i = L; i <= 100; i++) {if((2*N+i-i*i)%(2*i) == 0) {//如果首項為整數int start = (2*N+i-i*i)/(2*i);for(int j = 0; j < i-1; j++) {cout<<start+j<<" ";}cout<<start+i-1;return 0;}}cout<<"No"<<endl; }

總結

以上是生活随笔為你收集整理的输出序列和的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。