g529 高铁时刻表:100块钱分成5分的2分的1分的有多少种分法?JAVA

来源:百度文库 编辑:高考问答 时间:2024/05/04 20:44:08
class ForUsing //100块钱分成5分的2分的1分的有多少种分法
{
public static void main(String[] args)
{

int sum=0;
int b=0;
//方法1 :
for(int a=0;a<=2000;a++)//a 为5分数量
{

b=(10000-a*5)/2+1; //b为2分数量,剩下的用1分补
(这步理解不了,如果a=1,那么int b就是4998,然后赋值给sum这是什么意思?)
sum=sum+b;

}
System.out.println(sum);

//方法2:
int summ=0,i=0,j=2;
while(i<=5000)
{
summ+=i;
i+=5;
}
while(j<=4997)
{
summ+=j;
j+=5;
}
summ+=2001;
System.out.println(summ);
}
}

ps:看了别人的两种方法,一种也没看明白,麻烦有耐心的朋友帮忙详细解释下,谢谢了!!

这个钱数量控制得好很好分的,我说的是我自己的思路,JAVE的代码我写不了,先设置一个SUM初值=0,你做两个循环,把5分从0到2000个都计算过来,下一重循环是算2分的,当然是从0到5000,然后只要上面的和小于100就SUM+1
for(int i=0; i<=2000; i++)
for(int j=0; j<=5000; j++)
if(5*i+2*j<10000)
sum++;
晕,写完也看懂那第一个算法了,用他的,比较高效,你每减少一个两分的就相应要用两个1分的去换他,同样的,只要把那个数直接加在SUM上就可以了
SUM=SUM+B就是把B的值加到SUM上