| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2118 人关注过本帖
标题:[求助]钱币兑换问题
只看楼主 加入收藏
Fjcyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:175
专家分:25
注 册:2006-2-6
收藏
得分:0 
#include "stdio.h"
main()
{
unsigned int x,y,z,n,a;
printf ("please input n number ;\n\n");
scanf ("%d",&n);
a=0;
for (x=0;x<=n;x++)
{for (y=0;2*y<=n;y++)
{
for (z=0;3*z<=n;z++)
if (x+2*y+3*z==n)
a++;}}
printf ("a=%d\n\n",a);
}

[此贴子已经被作者于2006-2-13 12:49:19编辑过]


最好的域名、虚拟主机、VPS  www.
2006-02-10 23:52
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

[CODE]if(((n%2)==1)&&((m%2)==0))
result = ((m+1)*n-3*m*(m+1)/2-(m+2)/2)/2+m+1;
else
result = ((m+1)*n-3*m*(m+1)/2-(m+1)/2)/2+m+1;[/CODE]


2006-02-11 16:50
feixing
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-2-11
收藏
得分:0 

我看11楼的就可以拉


学海无涯,为求成功
2006-02-11 21:02
zushuboderen
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-12-24
收藏
得分:0 
觉得如果是三种和以下的硬币数目就用多重for循环就可以啊

冷静点............. 耐心点.............
2006-02-13 09:24
吸血鬼王
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2005-12-17
收藏
得分:0 
11楼的只能处理小一点的数,大了会溢出。用unsigned long才行吧。
另外当输入超过1200后算半天都出不了结果。不知道还有没有更好的方法
2006-02-13 13:38
Fjcyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:175
专家分:25
注 册:2006-2-6
收藏
得分:0 
以下是引用吸血鬼王在2006-2-13 13:38:00的发言:
11楼的只能处理小一点的数,大了会溢出。用unsigned long才行吧。
另外当输入超过1200后算半天都出不了结果。不知道还有没有更好的方法

的确是,大一点的数,卡在循环里了, 半天输不出值来.

不知谁来指点略一?


最好的域名、虚拟主机、VPS  www.
2006-02-13 14:11
月下听松
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-2-8
收藏
得分:0 
#include<stdio.h>
void main(){
int N,i,j,count=0;
printf("请输入钱币数N:");
scanf("%d",&N);
for(i=0;i*3<=N;i++){
for(j=0;(j*2+3*i)<=N;j++){
count++;
}
}
printf("有%d种方法\n",count);
}
对于1分的话根本不许考虑在循环内
2006-02-14 19:43
zushuboderen
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-12-24
收藏
得分:0 
那楼上的是不是丢了好多啊........

冷静点............. 耐心点.............
2006-02-16 10:11
tekkie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-2-7
收藏
得分:0 
晕,都说了如果做大数,循环都不顶用了啦~
求哪位数学牛人倒出一公式,谢啦~
2006-02-16 23:15
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

#include <stdio.h>
#include <conio.h>

void main()
{
long count=0;
int n,leap,i;
int count1,count2;

scanf("%d",&n);

for(i=0;i<=n;i++)
{
leap=0;
count1=(n-i)/2;
count2=(n-i)/3;

if((n-i)%3==0)
leap=1;

count1=(count1-count2)+leap;
count+=count1;
}
printf("%ld\n",count);
getch();
}

一次输入一个,多次输入略做修改就行
这属于一个不定方程的解法
想细究的加QQ314429136


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-17 00:54
快速回复:[求助]钱币兑换问题
数据加载中...
 
   



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

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