| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3536 人关注过本帖
标题:一道程序题目 循环次数越少越好
只看楼主 加入收藏
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
哦,抱歉粗心了~~~
2008-10-31 12:43
Toya_akira
Rank: 1
来 自:本因坊
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-10-31
收藏
得分:0 
这帖子不是有15个回复吗?怎么打开后只剩下10个回复了?
2008-10-31 15:58
zhuan77241
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-10-30
收藏
得分:0 
回复 10# 的帖子
每种面值的至少一张  所以 你的 改成 >1就行了
2008-10-31 19:32
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
for(int x=1;x<=7;x++){
       for(int y=1;y<=22;y++){
           for(int z=1;z<=27;z++){
               for(int a=2;a<=27;a++){
这些设计也能减少程序的循环吗。要想减少循环.至少也得是,大数在头环。
这个程序要减少循环。要从最小的钱考虑。
2008-10-31 20:08
zqlzs
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-10-18
收藏
得分:0 
这是最笨的方法,不知道对不对,运算有37种,
#include "stdio.h"
main()
{int i,j,f,b,e;
    e=0;
    for(i=1;i<9;i++)
    for(j=1;j<21;j++)
    for(f=1;f<27;f++)
    for(b=1;b<27;b++)
    if(50*i+20*j+10*f+5*b==500&&i+j+f+b==30)
    {
    printf("%d %d %d %d\n",i,j,f,b);
    e++;
    }
    
    
    printf("%d\n",e);
    
}
2008-10-31 20:40
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
来晚了点;
#include <stdio.h>
void main(){
  int count50;     /*面值为50的数目,由钱的总数为500
                   和每种面值的至少一张可知count50<10*/
  int count20;     /*同上,count20<22*/
  int count10;     /*面值为10的数目,因兑换后钱的张数为30
                   和每种面值的至少一张可知,count10<28*/
  int count5;     /*面值为5的数目,
                   其数目为30-(count50+count20+count+10),且>0*/
  int loop=0;     /*用于记录循环次数*/
  int i=0;        /*用于记录所有可能的兑换方法次数*/
  for(count50=1;count50<10;count50++)
    for(count20=1;count20<22;count20++)
      for(count10=1;count10<28;count10++){
    count5=30-(count50+count20+count10);
    if(count5<1)
           break;
    loop++;
    if(count50*50+count20*20+count10*10+count5*5==500){
      printf("50的张数为:%d\t",count50);
      printf("20的张数为:%d\t",count20);
      printf("10的张数为:%d\t",count10);
      printf("5的张数为:%d\n",count5);
      i++;
     }
      }
  printf("总的循环次数为:%d\n",loop);
  printf("所有可能的兑换方法有%d种\n\n",i);
}

运行了下,结果为:
……
50的张数为:4    20的张数为:5    10的张数为:19   5的张数为:2
50的张数为:4    20的张数为:6    10的张数为:16   5的张数为:4
50的张数为:4    20的张数为:7    10的张数为:13   5的张数为:6
50的张数为:4    20的张数为:8    10的张数为:10   5的张数为:8
50的张数为:4    20的张数为:9    10的张数为:7    5的张数为:10
50的张数为:4    20的张数为:10   10的张数为:4    5的张数为:12
50的张数为:4    20的张数为:11   10的张数为:1    5的张数为:14
50的张数为:5    20的张数为:1    10的张数为:22   5的张数为:2
50的张数为:5    20的张数为:2    10的张数为:19   5的张数为:4
50的张数为:5    20的张数为:3    10的张数为:16   5的张数为:6
50的张数为:5    20的张数为:4    10的张数为:13   5的张数为:8
50的张数为:5    20的张数为:5    10的张数为:10   5的张数为:10
50的张数为:5    20的张数为:6    10的张数为:7    5的张数为:12
50的张数为:5    20的张数为:7    10的张数为:4    5的张数为:14
50的张数为:5    20的张数为:8    10的张数为:1    5的张数为:16
50的张数为:6    20的张数为:1    10的张数为:13   5的张数为:10
50的张数为:6    20的张数为:2    10的张数为:10   5的张数为:12
50的张数为:6    20的张数为:3    10的张数为:7    5的张数为:14
50的张数为:6    20的张数为:4    10的张数为:4    5的张数为:16
50的张数为:6    20的张数为:5    10的张数为:1    5的张数为:18
50的张数为:7    20的张数为:1    10的张数为:4    5的张数为:18
50的张数为:7    20的张数为:2    10的张数为:1    5的张数为:20
总的循环次数为:2458
所有可能的兑换方法有37种
2008-11-01 07:42
Toya_akira
Rank: 1
来 自:本因坊
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-10-31
收藏
得分:0 
原来的那份强人的代码不见了

神之一手
2008-11-01 17:40
かわいたす
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-10-31
收藏
得分:0 
#include<stdio.h>
int main()
{
   
int nCnt = 0, nLoop=0;
    for (int i=1; i<8; ++i)
    {
        
for (int j=1; j<21; ++j)
        {
            
int m = (100-i*10-j*4);
            int n = 30-i-j;
            if (m>n && 2*n-m>0)
            {
               
printf("%d %d %d %d\n", i, j, m-n, 2*n-m);
                ++nCnt;
            }
            
++nLoop;
        }
    }
   
printf("Loop = %d\n", nLoop);
    printf("Total= %d\n", nCnt);
}

超越以上全部

[color=white]<" border="0" />>

[[it] 本帖最后由 かわいたす 于 2008-11-1 18:00 编辑 [/it]]
2008-11-01 17:58
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
回复 18# 的帖子
你这循环次数也多了点了吧
2008-11-01 18:04
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
怎么看不见第3页以后的回复了???
2008-11-01 18:09
快速回复:一道程序题目 循环次数越少越好
数据加载中...
 
   



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

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