输入一个正数 n,输出所有和为 n 连续正数序列

阅读: 评论:0

输入一个正数 n,输出所有和为 n 连续正数序列

输入一个正数 n,输出所有和为 n 连续正数序列

题目:输入一个正数 n,输出所有和为 n 连续正数序列

分析:如 15,1+2+3+4+5=4+5+6=7+8=15,可以看出有3组序列。

此处可以看出当数为奇数时,两连续数相加可以得到,这种组合为数字最大的组合。故我们可以从1到正数的一半(n/2+1)遍历所有和的组合。

#include<stdio.h>void seq(unsigned int n)
{int small=1;int big=2;int i=1;int sum=0;printf("和为%d的所有序列组合如下:n",n);while(small<n/2+1){   sum=0;for(i=small;i<=big;i++){sum+=i;}if(sum==n){for(i=small;i<=big;i++){printf("%d ",i);}printf("n");small++;big=small+1;}       else if(sum<n){big++;}else{small++;}}   
}int main()
{   seq(15);seq(70);return 0;
}

欢迎留言给出更优的解法!


Juyin@2018/5/12

本文发布于:2024-02-05 04:53:04,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170724569563205.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:正数   序列
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23