| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 772 人关注过本帖
标题:【求助】请高手指点,这个问题,应该怎么编?
只看楼主 加入收藏
qinshen
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
【求助】请高手指点,这个问题,应该怎么编?
有13组数 ,每组有个三数,现从每组中取一个数相乘,要求它们的最终乘积 小于60万 大于40万 。问题是:从这13组数中,每组各取的是那个数,靖输出包含13个数的数列。
2009-10-02 15:18
qinshen
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-2
收藏
得分:0 
也就是说,设计一个程序,让我可以输入13组数,然后它在这13组数中每组各取一个数相乘。在我设定的最大值和最小值的范围内,它列出满足我要求的数列,让我知道这些数中到到底是哪些数相乘得到的积  可以小于60万,大于40万。
2009-10-02 15:51
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
情况太多了。怕编出来机器都死了。
2009-10-02 16:01
sqrt2
Rank: 2
等 级:论坛游民
帖 子:25
专家分:12
注 册:2007-7-17
收藏
得分:2 
能把13组数贴出来么

[ 本帖最后由 sqrt2 于 2009-10-2 16:48 编辑 ]
2009-10-02 16:46
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    long int a[13][3],m;
    int i,i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,j;
    printf("please input 13 groups numbers :\n");
    for(i=0;i<13;i++)
       for(j=0;j<3;j++)
           scanf("%ld",&a[i][j]);
    for(i0=0;i0<3;i0++)
        for(i1=0;i1<3;i1++)
            for(i2=0;i2<3;i2++)
                for(i3=0;i3<3;i3++)
                    for(i4=0;i4<3;i4++)
                        for(i5=0;i5<3;i5++)
                            for(i6=0;i6<3;i6++)
                                for(i7=0;i7<3;i7++)
                                    for(i8=0;i8<3;i8++)
                                        for(i9=0;i9<3;i9++)
                                            for(i10=0;i10<3;i10++)
                                                for(i11=0;i11<3;i11++)
                                                    for(i12=0;i12<3;i12++)
                                                        {
                                                           m=a[0][i0]*a[1][i1]*a[2][i2]*a[3][i3]*a[4][i4]*a[5][i5]*a[6][i6]*a[7][i7]*a[8][i8]*a[9][i9]*a[10][i10]*a[11][i11]*a[12][i12];
                                                           if(m>400000&&m<600000)
                                                           printf("%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld. ",a[0][i0],a[1][i1],a[2][i2],a[3][i3],a[4][i4],a[5][i5],a[6][i6],a[7][i7],a[8][i8],a[9][i9],a[10][i10],a[11][i11],a[12][i12]);
                                                       }
}
试试这个,我默认你输入的13组数是整数,要是带小数自己改一下应该可以。数太多,一下子把屏幕沾满了,看起来不舒服,自己调调吧。
2009-10-02 17:12
zhangxf1989
Rank: 6Rank: 6
等 级:侠之大者
帖 子:96
专家分:419
注 册:2009-9-5
收藏
得分:2 
建议楼上的朋友在每重循环内首先判断一下该重循环所取出的数是否为零,如果为零则直接continue,不再进行下面的循环。这样有可能减少一点循环的次数。
2009-10-02 19:26
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:2 
回复 5楼 m456m654
算法不难,就是写出来好麻烦,看的眼花。
然后思考:该怎么解决呢?

我可好玩啦...不信你玩玩^_^
2009-10-03 14:04
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:2 
回复 7楼 pgy
感觉可以用3进制来解决,不过性能好像不会有什么提高,可能还会有所下降,但是代码应该会好看很多,不用写这么多循环

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-10-03 14:43
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
以下是引用m456m654在2009-10-2 17:12:49的发言:

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    long int a[13][3],m;
    int i,i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,j;
    printf("please input 13 groups numbers :\n"); ...


我实在看不下去。。
2009-10-04 23:23
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:2 
你应该学会习惯……

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-10-04 23:28
快速回复:【求助】请高手指点,这个问题,应该怎么编?
数据加载中...
 
   



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

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