用jAVA写程序。N瓶汽水,M个空瓶子可以换一瓶汽水。买N瓶汽水一共可以喝多少瓶? 想喝P瓶汽水,需要买多少

用jAVA写程序。N瓶汽水,M个空瓶子可以换一瓶汽水。买N瓶汽水一共可以喝多少瓶? 想喝P瓶汽水,需要买多少,第1张

//-------------------------------正向的算法,就是知道N和M算出P----------------------------------------

int left=0,sum=0,newBott=0

int N=34,M=3//要改M,N值在这里

newBott = N

sum =N

if(M==1){System.out.println("无限换")}

else

{

while((newBott+left)>=M) //如果还能换

{

int temp1 = (newBott+left)%M //换了之后剩下不够换的

int temp2 = (newBott+left)/M //换出来新的

left = temp1

newBott = temp2

sum = sum + newBott + left//罩则宏总数增加物册

}

System.out.println("一共可换 "+sum+ " 瓶")

}

//------------------------------反向算法,就是知道P,M算出N---------------------------------------------

int left=0,sum=0,newBott=0

int N,M=15,P=222//要改M,P值在这里改

labelA: for(N=MN<PN++)

{

if(M==1){N=1System.out.println("需要 "+ N+ "瓶")break} //如果可以1瓶换1瓶,那就只用1瓶

if(M==0){N=PSystem.out.println("需要 "+ N+ "瓶")break} //如果可以1瓶换0瓶,那就盯正用P瓶

sum =N

newBott = N

while((newBott+left)>M)

{

int temp1 = (newBott+left)%M

int temp2 = (newBott+left)/M

left = temp1

newBott = temp2

sum = sum + newBott + left

if(P==sum){System.out.println("需要 "+ N+ "瓶")

break labelA}

}

}

//--------------------------------------------------------------------------------

public static void main(String[] args) {

// TODO 自动生成的冲孙方法存根

int x,y

x=100//x的值可以册运自己指定散姿链,在这里假设100

y=100//y的值等于x的值

while(x/2!=1){

y=y+x/2

if(x%2!=0){

x=x/2+1

}

else{

x=x/2

}}

if(x==3){

y+=2

}

else{

y+=1

}

System.out.println("x元可以喝:"+y+"瓶")

}

}

//我调试过了,应该没有问题


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12293012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存