| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2163 人关注过本帖
标题:请教一个简单的求和数列
只看楼主 加入收藏
丝丝雨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-22
收藏
 问题点数:0 回复次数:34 
请教一个简单的求和数列
请教高手:1到9,任选3个数加起来和为15,用C语言编写,求有多少组,并列出来。。。
小女子刚学C语言,才疏学浅,望前辈赐教!
搜索更多相关主题的帖子: 求和 
2008-11-22 21:44
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
我现在给你写一下吧
2008-11-22 21:55
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
//一个简单的求和数列 1到9,任选3个数加起来和为15,用C语言编写,求有多少组,并列出来。。。
#include <stdio.h>
#include <stdlib.h>

//简单三重循环实现
int main(int argc, char** argv)
{
    int nCount_Num = 0;
    for(int i = 1; i < 10; i++)
    {
        for(int j = 1; j < 10; j++)
            for(int nNum = 1; nNum < 10; nNum++)
            {
                if(15 == i + j + nNum)
                {
                    printf("第%2d组为:%d,%d,%d\n", nCount_Num+1, i, j, nNum);
                    nCount_Num++;
                }
            }
    }
    printf("一共有%d组\n", nCount_Num);

    return 0;
}
2008-11-22 22:04
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
一共61组,
2008-11-22 22:04
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
使用二重循环即可达到三重循环的功能
程序代码:
#include <stdio.h>
int main(void){
  int i,j,k;
  for(i=1;i<=9;i++)
    for(j=1;j<=9;j++)
      if(14-i-j<=9 && 14-i-j>=0)   /*就把这里解释一下,为什么是14,不是15,如果写15就可能出现0,特此15-1=14*/
        printf("%d+%d+%d=%d\n",i,j,15-i-j,15);
  getch();
}

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 22:10
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
前一个多了一个变量k,没搞好...
然后在if里,第一个14-i-j<=9还是应该是15,一点漏洞...
然后根据4楼的,加了一个统计的
程序代码:
#include <stdio.h>
int main(void){
  int i,j,y=0;
  for(i=1;i<=9;i++)
    for(j=1;j<=9;j++)
      if(15-i-j<=9 && 14-i-j>=0){   /*就把这里解释一下,为什么是14,不是15,如果写15就可能出现0,特此15-1=14*/
        printf("%d+%d+%d=%d\n",i,j,15-i-j,15);
        y++;
      }
  printf("一共有%d组",y);
  getch();
}

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 22:17
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
恩,二重循环执行比较快,不过对于简单程序个人认为使用三重循环简单明了
2008-11-22 22:23
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
不对,题目有点歧义,不知道可以不可以使用三个一样的数字,比如三个五,
不过我猜测应该是允许的
2008-11-22 22:24
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
这题目就有一点不好..
有许多重复的.......

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 22:28
peng_piao
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-11-5
收藏
得分:0 
//一个简单的求和数列 1到9,任选3个数加起来和为15,用C语言编写,求有多少组,并列出来。。。
#include <stdio.h>
#include <stdlib.h>

//简单三重循环实现
int main(int argc, char** argv)
{
    int nCount_Num = 0;
    for(int i = 1; i < 10; i++)
    {
        for(int j = i;  j < 10; j++)
        {
            for(int nNum = j;  nNum < 10; nNum++)
            {
                if(15 == i + j + nNum)
                {
                    printf("第%2d组为:%d,%d,%d\n", nCount_Num+1, i, j, nNum);
                    nCount_Num++;
                }
            }
        }    
    }
    printf("一共有%d组\n", nCount_Num);

    return 0;
}
2008-11-22 22:34
快速回复:请教一个简单的求和数列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022903 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved