本小白自己寫的,請大家指教。
using System;
class Calculate
{
static void Main ()
{
int a=0;
int b=0;
int all=0;
while(true)
{
bool s=true;
try
{
Console.WriteLine("請輸入第一個數字:");
a=(int)Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸入第二個數字:");
b=(int)Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("輸入不正確,請重新輸入");
s=false;
}
if(s) break;
}
Console.WriteLine("兩數之間的整數有:{0}個。",Math.Abs(a-b)-1);
if(a<b)
{
for(int i=a+1;i<b;i++)
{
try
{
if(b-a>1)
checked{all+=i;}
else
all=0;
}
catch
{
Console.WriteLine("超出范圍!");
return;
}
}
}
else
{
for(int i=b+1;i<a;i++)
{
try
{
if(a-b>1)
checked{all+=i;}
else
all=0;
}
catch
{
Console.WriteLine("超出范圍!");
return;
}
}
}
Console.WriteLine("它們之間的和為{0}",all);
}
}
uj5u.com熱心網友回復:
樓下代碼
十個字給你了
uj5u.com熱心網友回復:
int Num1 = 0;
int Num2 = 0;
int Sum = 0;
List<int> numList=new List<int> ();
Console.WriteLine("請輸入第一位數:");
Num1=(int)Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸入第二位數:");
Num2 = (int)Convert.ToDouble(Console.ReadLine());
if (Num1>Num2)
{
for (int i = Num2 + 1; i < Num1; i++)
{
Sum += i;
numList.Add(i);
}
}
else if (Num1 < Num2)
{
for (int i = Num1 + 1; i < Num2; i++)
{
Sum += i;
numList.Add(i);
}
}
else if (Num1==Num2)
{
Sum = 0;
}
if (Num1 == Num2)
{
Console.WriteLine("兩數之間的整數為空,和為0!");
}
else
{
StringBuilder builder = new StringBuilder();
foreach (var item in numList)
{
builder.AppendFormat(item.ToString() + ",");
}
Console.WriteLine("兩數之間的整數為:"+ builder.ToString());
}
Console.WriteLine("{0}到{1}之間的整數和為{2}",Num1,Num2,Sum);
Console.ReadKey();
uj5u.com熱心網友回復:
static void Main(string[] args)
{
Game();
Console.ReadKey();
}
/// <summary>
/// 獲取兩位數
/// </summary>
/// <param name="Num1"></param>
/// <param name="Num2"></param>
/// <returns></returns>
public static bool GetNum(ref int Num1, ref int Num2)
{
double result = 0;
Console.WriteLine("請輸入第一位數:");
string a = Console.ReadLine();
bool isNum1 = double.TryParse(a, out result);//能否轉化為數字
Console.WriteLine("請輸入第二位數:");
string b = Console.ReadLine();
bool isNum2 = double.TryParse(b, out result);//能否轉化為數字
if (isNum1 && isNum2)
{
Num1 = (int)Convert.ToDouble(a);
Num2 = (int)Convert.ToDouble(b);
return true;
}
else
{
return false;
}
}
/// <summary>
/// 數字求和
/// </summary>
/// <param name="Num1"></param>
/// <param name="Num2"></param>
public static void Summation(int Num1, int Num2)
{
int Sum = 0;
List<int> numList = new List<int>();
if (Num1 > Num2)
{
for (int i = Num2 + 1; i < Num1; i++)
{
Sum += i;
numList.Add(i);
}
}
else if (Num1 < Num2)
{
for (int i = Num1 + 1; i < Num2; i++)
{
Sum += i;
numList.Add(i);
}
}
else if (Num1 == Num2)
{
Sum = 0;
}
if (Num1 == Num2)
{
Console.WriteLine("兩數之間的整數為空,和為0!");
}
else
{
StringBuilder builder = new StringBuilder();
foreach (var item in numList)
{
builder.AppendFormat(item.ToString() + ",");
}
Console.WriteLine("兩數之間的整數為:" + builder.ToString());
}
Console.WriteLine("{0}到{1}之間的整數和為{2}", Num1, Num2, Sum);
}
/// <summary>
/// 是否繼續
/// </summary>
/// <param name="Num1"></param>
/// <param name="Num2"></param>
public static void Again(int Num1, int Num2)
{
Console.WriteLine("是否重新開始本程式?");
Console.WriteLine("1:重新開始 0:拒絕開始");
string isOk = Console.ReadLine();
if (isOk == "1")
{
Game();
}
else if (isOk == "0")
{
Console.WriteLine("計算結束!");
}
else
{
Again(Num1, Num2);
}
}
public static void Game()
{
int Num1 = 0;
int Num2 = 0;
if (GetNum(ref Num1, ref Num2))
{
Summation(Num1, Num2);
Again(Num1, Num2);
}
else
{
Console.WriteLine("請重新輸入規范的數字!");
GetNum(ref Num1, ref Num2);
}
}
uj5u.com熱心網友回復:
這個方法我試過了 很不錯uj5u.com熱心網友回復:
樓下正解。。。uj5u.com熱心網友回復:
(a+b)*(a-b+1)/2uj5u.com熱心網友回復:
這似曾相識的感覺
static int sum(int star, int end)
{
if (star == end)
{
return star;
}
return end+sum(star, end - 1);
}
uj5u.com熱心網友回復:
使用等引數列公式:public static int SumBetween(int a, int b)
{
int iMin = Math.Min(a, b) + 1;
int n = Math.Max(a, b) - Math.Min(a, b) - 1;
return n * iMin + (n * (n - 1)) / 2;
}
直接加:
public static int SumBetween(int a, int b)
{
int iSum = 0;
for (int I = Math.Min(a, b) + 1; I < Math.Max(a, b); I++)
iSum += I;
return iSum;
}
uj5u.com熱心網友回復:
這個沒太看懂 參考引數嗎?
uj5u.com熱心網友回復:
ref參考傳遞,使用前要先宣告并且賦值,假設某個方法回傳bool型別,但是你還想要里面其中一個值,你就可以通過ref將這個值帶出來。uj5u.com熱心網友回復:
???沒看上面的我想問一句,你們想說的是這個么??
int res = Enumerable.Range(小值, 大值 - 小值).Sum();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/147019.html
標籤:C#
