本文主要是介绍硬币兑换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
小P的故事——神奇的换零钱
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
已知A国经济很落后,他们只有1、2、3元三种面值的硬币,有一天小P要去A国旅行,想换一些零钱,小P很想知道将钱N兑换成硬币有很多种兑法,但是可惜的是他的数学竟然是体育老师教的,所以他不会啊、、、他只好求助于你,你可以帮他解决吗?
提示:输入数据大于32000组。
提示:输入数据大于32000组。
输入
每行只有一个正整数N,N小于32768。
输出
对应每个输入,输出兑换方法数。
示例输入
100 1500
示例输出
884 188251
提示
提交了n次不对,木然回首少了等号
#include<stdio.h>
int main()
{long long s,i,n;while(scanf("%lld",&n)!=EOF){s=0;s=n/3+1;for(i=0;i<=n/3;i++)s+=(n-i*3)/2;printf("%lld\n",s); }
}
刚突然想起了约瑟夫,算是看这篇文章的福利吧:
#include <stdio.h>
int main()
{
int n, m, i, s = 0;
printf ("N M = ");
scanf("%d%d", &n, &m);
for (i = 2; i <= n; i++)
{
s = (s + m) % i;
}
printf ("\nThe winner is %d\n", s+1);
}
#include<stdio.h>
int main()
{long long s,i,n;while(scanf("%lld",&n)!=EOF){s=0;s=n/3+1;for(i=0;i<=n/3;i++)s+=(n-i*3)/2;printf("%lld\n",s); }
}
刚突然想起了约瑟夫,算是看这篇文章的福利吧:
#include <stdio.h>
int main()
{
int n, m, i, s = 0;
printf ("N M = ");
scanf("%d%d", &n, &m);
for (i = 2; i <= n; i++)
{
s = (s + m) % i;
}
printf ("\nThe winner is %d\n", s+1);
}
这篇关于硬币兑换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!