编写一个程序,找出一个数的全部的连续整数固定和。所谓一个数n的连续整数固定和,就是指存在a1,a2,...,an,其中ai+1比ai大1,使得a1+a2+...+an = n。
此问题,我们知道,一个数的连续整数固定和,一定是从1到n-1。因此通过穷举法,我们从1一直递增的去查找,然后计算和,如果是,则输出此连续整数和。代码如下:
- #include <stdio.h>
-
-
void cntnsIntSum(int n)
-
{
-
int i,j,sum=0;
-
for(i=1; i<n; i++){
-
j = i;
-
while(sum < n){
-
sum += j;
-
j++;
-
}
-
-
if(sum == n){
-
printf("%d + ... + %d = %d\n",i,j-1,n);
-
}
-
sum = 0;
-
}
-
}
-
-
-
int main(int argc, char *argv[])
-
{
-
int n;
-
printf("please input a integer\n");
-
scanf("%d",&n);
-
cntnsIntSum(n);
-
-
return 0;
-
}
执行结果如下:
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
please input a integer
27
2 + ... + 7 = 27
8 + ... + 10 = 27
13 + ... + 14 = 27
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.1.c
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
please input a integer
28
1 + ... + 7 = 28
阅读(2300) | 评论(0) | 转发(0) |