手机今天接到了一条很有意思的短息,我想可以用程序做下,很简单的:一元一瓶饮料,两个空饮料瓶能换一瓶饮料,现在有120元,最多能喝多少瓶饮料? 我写的是:
//M 为钱数
private static void ShowTotal(int M)
{
int b = -1, c = 0;//b瓶子,c瓶数
for (int i = M; i >= 0; i--)
{
b++;
if (b % 2 == 0 && b != 0)
{
c++;
b--; }
}
int result = c + M;
Console.WriteLine(result);
}
大家有什么简便的方法,希望呈上
//M 为钱数
private static void ShowTotal(int M)
{
int b = -1, c = 0;//b瓶子,c瓶数
for (int i = M; i >= 0; i--)
{
b++;
if (b % 2 == 0 && b != 0)
{
c++;
b--; }
}
int result = c + M;
Console.WriteLine(result);
}
大家有什么简便的方法,希望呈上
static int sum = 0;
static int last = 0;
public static void TestElse()
{
GetCount(120);
Console.WriteLine(sum);
} static void GetCount(int count)
{
sum += count;
count += last;
last = count % 2;
if (count == 1) return;
GetCount(count / 2);
}
for (int i = 1; i < 121; i++)
{
b++;
if (b != 0 && b % 2 == 0)
b++;
} Response.Write("最多为:"+b.ToString());
}应该是239
int empty = 0;
while ((count--)>0)
{
empty++;
if (empty % 2 == 0)
empty++;
}
Console.WriteLine(empty);
{
while (true)
{
Console.WriteLine("请输入钱数:");
int m = int.Parse(Console.ReadLine());
Console.WriteLine("请输入参数");
int r = int.Parse(Console.ReadLine());
Console.WriteLine(Sumb(m,r));
}
} #region 求瓶子数
static int Sumb(int n,int t)
{
int sum = n;
while (n >t-1)
{
if (n % t == 0)
{
sum += n / t;
n = n / t;
}
else
{
sum += n / t;
n = n / t + 1;
}
}
return sum;
}
#endregion
}
}
int s=120;
int j=2;
int a=s/j;
int sa=s;
for(int c=a;c>1;){
sa+=c;
c=c/j;
}
System.out.println(sa);)
int j=2;
int a=s/j;
int sa=s;
for(int c=a;c>1;){
sa+=c;
c=c/j;
}
System.out.println(sa);
因此可以这样写
private static void ShowTotal(int M)
{
int c= M>0?M/2:M;
int result=c + M;
Console.WriteLine(result);
}
{
int b = -1, c = 0;//b瓶子,c瓶数
for (int i = M; i >= 0; i--)
{
b++;
if (b % 2 == 0 && b != 0)
{
c++;
b--; }
}
int result = c + M;
Console.WriteLine(result);
}
b 的值在里面怎不起作用b++;%2;就b--,看这个程序就是第隔1,c就+1,因此可以这样写,int c=m/2
你要说跟你一样的结果,这个就跟你一样private static void ShowTotal(int M)
{
Console.WriteLine(M>0?1-M*2:M);
}
private static void ShowTotal(int M)
{
Console.WriteLine(M>0?M+M-1:M);
}
{
Console.WriteLine(M==0?0:M+M/2);
}