算法训练 连续正整数的和
生活随笔
收集整理的這篇文章主要介紹了
算法训练 连续正整数的和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述 78這個數可以表示為連續正整數的和,1+2+3,18+19+20+21,25+26+27。 輸入描述
輸入一個正整數 n(<=10000) 輸出描述
輸出 m 行(n有m種表示法),每行是兩個正整數a,b,表示a+(a+1)+...+b=n。
對于多種表示法,a小的方案先輸出。 樣例輸入 78 樣例輸出 1 12 18 21 25 27 測試代碼 1 #include <stdio.h> 2 3 int main() 4 { 5 int n, sum = 0; 6 int a = 1, b = a + 1; 7 scanf("%d", &n); 8 while (b != a + 1 || sum < n) 9 { 10 if (sum < n) 11 { 12 b++; 13 } 14 else 15 { 16 a++; 17 b = a + 1; 18 } 19 sum = (a + b) * (b - a + 1) / 2; 20 if (sum == n) 21 { 22 printf("%d %d\n", a, b); 23 } 24 } 25 return 0; 26 }
輸入一個正整數 n(<=10000) 輸出描述
輸出 m 行(n有m種表示法),每行是兩個正整數a,b,表示a+(a+1)+...+b=n。
對于多種表示法,a小的方案先輸出。 樣例輸入 78 樣例輸出 1 12 18 21 25 27 測試代碼 1 #include <stdio.h> 2 3 int main() 4 { 5 int n, sum = 0; 6 int a = 1, b = a + 1; 7 scanf("%d", &n); 8 while (b != a + 1 || sum < n) 9 { 10 if (sum < n) 11 { 12 b++; 13 } 14 else 15 { 16 a++; 17 b = a + 1; 18 } 19 sum = (a + b) * (b - a + 1) / 2; 20 if (sum == n) 21 { 22 printf("%d %d\n", a, b); 23 } 24 } 25 return 0; 26 }
?
轉載于:https://www.cnblogs.com/maxin/p/5527619.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的算法训练 连续正整数的和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暑假集训-个人赛第六场
- 下一篇: ogrinfo使用