int num=n; //n 就是初始的瓶数 int temp; int total=n; while(num>0) { temp=num/3; total+=temp; num=temp; } Console.WriteLine("可以喝"+total+"瓶");
public int getTotal(int intSrc, int intDiv, int intTotal) { intTotal += intSrc / intDiv; if (m > 3) { intTotal = getTotal(intSrc / intDiv + intSrc % intDiv, intDiv, intTotal); } return intTotal; }int toTal = getTotal(74,3,74); ==> toTal = 110;
public int getTotal(int intSrc, int intDiv, int intTotal) { intTotal += intSrc / intDiv; if (m > intDiv - 1) { intTotal = getTotal(intSrc / intDiv + intSrc % intDiv, intDiv, intTotal); } return intTotal; }int toTal = getTotal(74,3,74); ==> toTal = 110;
int m=74,n=3,i=74,temp; while(m>n-1) { temp=m/n; i+=temp; m=temp + m%n; }
int m=74,n=3,i=74; while(m>n-1) { i += m / n; m = m / n + m % n; }==>i == 110;
foren_whb(丰云) 你发我的是统计什么的???这是我做的 int getNum(int n) { int num = 0; if (n < 3){ num = n;} else{ if (n % 3 == 0){ num = n + (n/3)+1;} else{ double d = ((n+1)/ 3); d = Math.Ceiling(d); num = n + int.Parse(d.ToString());}} return num; }
很简单的一个问题么,不要弄复杂了 public int GetNum(int n) { for (int i = 1; i <= n; i++) { if (i % 3 == 0) { n = n + 1; } } return n; }
for(int i=0;i<n;i++)
{
if(i%3==0)
{
i--;
}
drinked++;
}
i--应该是drinked++
int num=n; //n 就是初始的瓶数
int temp;
int total=n;
while(num>0)
{
temp=num/3;
total+=temp;
num=temp;
}
Console.WriteLine("可以喝"+total+"瓶");
public int getTotal(int intSrc, int intDiv, int intTotal)
{
intTotal += intSrc / intDiv;
if (m > 3)
{
intTotal = getTotal(intSrc / intDiv + intSrc % intDiv, intDiv, intTotal);
}
return intTotal;
}int toTal = getTotal(74,3,74);
==>
toTal = 110;
{
intTotal += intSrc / intDiv;
if (m > intDiv - 1)
{
intTotal = getTotal(intSrc / intDiv + intSrc % intDiv, intDiv, intTotal);
}
return intTotal;
}int toTal = getTotal(74,3,74);
==>
toTal = 110;
int m=74,n=3,i=74,temp;
while(m>n-1)
{
temp=m/n;
i+=temp;
m=temp + m%n;
}
int m=74,n=3,i=74;
while(m>n-1)
{
i += m / n;
m = m / n + m % n;
}==>i == 110;
你发我的是统计什么的???这是我做的
int getNum(int n)
{
int num = 0;
if (n < 3){
num = n;}
else{
if (n % 3 == 0){
num = n + (n/3)+1;}
else{
double d = ((n+1)/ 3);
d = Math.Ceiling(d);
num = n + int.Parse(d.ToString());}}
return num;
}
public int GetNum(int n)
{
for (int i = 1; i <= n; i++)
{
if (i % 3 == 0)
{
n = n + 1;
}
}
return n;
}
这里m是最初给他多少瓶酒,
n是指多少瓶子可以换一瓶酒,
i是指总共喝酒的数量(必须包含最初的数量,所以初始值等于m),
算下来i为110,
也就是说,
你给他74瓶酒,
他总共可以喝110瓶酒。那个while循环就是算法!
int nCount //N瓶酒
int nTotal = nCount; //总数量 while (nCount >= 3)
{
//减3瓶加1瓶
nCount = nCount - 3 + 1;
//总数加1瓶
nTotal = nTotal + 1;
}
private int sumShu = 0;
private int emptyShu = 0;
sumPing(int firstShu) {
sumShu = firstShu;
emptyShu = firstShu;
System.out.println("get:\t" + firstShu);
System.out.print("-h-:\t" + firstShu);
System.out.println("\t-o-:\t" + firstShu);
}
void jiShuan() {
if(emptyShu > 2) {
System.out.print("-h-:\t" + emptyShu / 3);
//System.out.println("\t-o-:\t" + emptyShu / 3 +"-"+ emptyShu % 3);
System.out.println("\t-o-:\t" + (emptyShu / 3 + emptyShu % 3));
sumShu += emptyShu / 3;
emptyShu = emptyShu / 3 + emptyShu % 3;
this.jiShuan();
} else {
System.out.print("hava:\t" + this.sumShu);
System.out.println("\tempty:\t" + emptyShu);
}
}
public static void main(String[] args) {
sumPing a = new sumPing(9999);
a.jiShuan();
}
}
/*
get: 1001
-h-: 1001 -o-: 1001
-h-: 333 -o-: 335
-h-: 111 -o-: 113
-h-: 37 -o-: 39
-h-: 13 -o-: 13
-h-: 4 -o-: 5
-h-: 1 -o-: 3
-h-: 1 -o-: 1
hava: 1501 empty: 1get: 502
-h-: 502 -o-: 502
-h-: 167 -o-: 168
-h-: 56 -o-: 56
-h-: 18 -o-: 20
-h-: 6 -o-: 8
-h-: 2 -o-: 4
-h-: 1 -o-: 2
hava: 752 empty: 2get: 45
-h-: 45 -o-: 45
-h-: 15 -o-: 15
-h-: 5 -o-: 5
-h-: 1 -o-: 3
-h-: 1 -o-: 1
hava: 67 empty: 1get: 4
-h-: 4 -o-: 4
-h-: 1 -o-: 2
hava: 5 empty: 2get: 3
-h-: 3 -o-: 3
-h-: 1 -o-: 1
hava: 4 empty: 1get: 2
-h-: 2 -o-: 2
hava: 2 empty: 2get: 1
-h-: 1 -o-: 1
hava: 1 empty: 1 */