链接: https://pan.baidu.com/s/1CUtqB-2ydwyrEQI9i7R6hA
提取码: cbxg
public static void Test()
{
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();
bool flag_increase=false, flag_decrease=false, flag_equal=false;
while (true)
{
string str=Console.ReadLine();
if (str=="")
{
break;
}
try
{
string[] strs = str.Split(' ');
int i, j;
i = int.Parse(strs[0]);
j = int.Parse(strs[1]);
list1.Add(i);
list2.Add(j);
}
catch (Exception)
{
}
}
for (int i = 0; i < list1.Count - 1; i++)
{
if (((float)list1[i] / (float)list2[i]) < ((float)list1[i + 1] / (float)list2[i + 1]))
{
flag_increase = true;
}
else if (((float)list1[i] / (float)list2[i]) > ((float)list1[i + 1] / (float)list2[i + 1]))
{
flag_decrease = true;
}
else
{
flag_equal = true;
}
}
if (flag_increase && !flag_decrease && !flag_equal)
{
Console.WriteLine("increasing");
}
else if (!flag_increase && flag_decrease && !flag_equal)
{
Console.WriteLine("decreasing");
}
else if (!flag_increase && !flag_decrease && flag_equal)
{
Console.WriteLine("constant");
}
else if (flag_increase && !flag_decrease && flag_equal)
{
Console.WriteLine("non-decreasing");
}
else if (!flag_increase && flag_decrease && flag_equal)
{
Console.WriteLine("non-increasing");
}
else
{
Console.WriteLine("non-monotonic");
}
}
好的,正在编写代码了。
using System;
namespace ConsoleApp1
{
class frac
{
public int up, down;
frac(string up, string down)
{
this.set(up, down);
}
public frac()
{
}
public void set(string up, string down)
{
this.up = int.Parse(up);
this.down = int.Parse(down);
int mmax = Math.Max(this.up, this.down);
int mmin = Math.Min(this.up, this.down);
int ggcd = gcd(mmax, mmin);
this.up /= ggcd;
this.down /= ggcd;
}
public void set(frac another)
{
this.up = another.up;
this.down = another.down;
}
int gcd(int a, int b)
{
if(b != 0)
{
return gcd(b, a%b);
}
else
{
return a;
}
}
public int compare(frac another)
{
if(another.up == this.up && another.down == this.down)
{
return 0;
}
else
{
int result = this.up * another.down - this.down * another.up;
if(result > 0)
{
return 1;
}
else
{
return -1;
}
}
}
}
class Program
{
static void Main(string[] args)
{
string line;
int increFlag = 0, decreFlag = 0, equalFlag = 0;
int index = 0;
frac now = new frac();
frac last = new frac();
while (true)
{
line = Console.ReadLine();
if (line == null)
{
break;
}
String[] eachLine = line.Split(' ');
if (eachLine.Length != 2)
{
break;
}
if(index == 0)
{
last.set(eachLine[0], eachLine[1]);
}
else
{
now.set(eachLine[0], eachLine[1]);
int flag = now.compare(last);
if(flag == 0)
{
equalFlag = 1;
}
else if(flag == -1)
{
decreFlag = 1;
}
else if(flag == 1)
{
increFlag = 1;
}
last.set(now);
}
index++;
}
//Console.WriteLine(increFlag + ":" + decreFlag + ":" + equalFlag);
if(increFlag==1 && decreFlag==1)
{
Console.WriteLine("non-montonic");
}
else if (increFlag == 1 && equalFlag == 1)
{
Console.WriteLine("non-decreasing");
}
else if (increFlag == 1 && equalFlag == 0)
{
Console.WriteLine("increasing");
}
else if (decreFlag == 1 && equalFlag == 1)
{
Console.WriteLine("non-increasing");
}
else if (increFlag == 1 && equalFlag == 0)
{
Console.WriteLine("decreasing");
}
else if(increFlag==0 && decreFlag==0 && equalFlag==1)
{
Console.WriteLine("constant");
}
else
{
Console.WriteLine("Unexpected.");
}
}
}
}