Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2501265
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-04-26 17:47:09

    编写一个程序,找出一个数的全部的连续整数固定和。所谓一个数n的连续整数固定和,就是指存在a1,a2,...,an,其中ai+1比ai大1,使得a1+a2+...+an = n。
    此问题,我们知道,一个数的连续整数固定和,一定是从1到n-1。因此通过穷举法,我们从1一直递增的去查找,然后计算和,如果是,则输出此连续整数和。代码如下:
  1. #include <stdio.h>

  2. void cntnsIntSum(int n)
  3. {
  4.   int i,j,sum=0;
  5.   for(i=1; i<n; i++){
  6.     j = i;
  7.     while(sum < n){
  8.       sum += j;
  9.       j++;
  10.     }

  11.     if(sum == n){
  12.       printf("%d + ... + %d = %d\n",i,j-1,n);
  13.     }
  14.     sum = 0;
  15.   }
  16. }


  17. int main(int argc, char *argv[])
  18. {
  19.   int n;
  20.   printf("please input a integer\n");
  21.   scanf("%d",&n);
  22.   cntnsIntSum(n);

  23.   return 0;
  24. }
执行结果如下:
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

阅读(2255) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~