第一题:x^2 + y^2 = 2000 ,求x和y的所有正整数
public string t1()
{
int tn;
int k = (int)(Math.Sqrt(2000)) + 1;
int x = 0;
StringBuilder sb = new StringBuilder();
while (x < k)
{
tn = 2000 - x * x;
if (IsSquare(tn))
{
sb.AppendLine($"x = {x}, y = {(int)Math.Sqrt(tn)}\n\r");
}
x++;
}
return sb.ToString();
}
//判断是是否为圆形
bool IsSquare(int tn)
{
double x = Math.Sqrt(tn);
return (x - (int)x == 0);
}
第二题,求1000以内的质数,并且按照下图排列
public string t2()
{
StringBuilder sb = new StringBuilder();
bool flag;//声明一个bool值用来判断是否是素数
int currentCount = 0;//当前数量
int rowCount = 0;//应该数量
for (int i = 2; i <= 1000; i++)//循环 1000以内的数
{
//每次循环都把flag的值设置为true,
flag = true;
//开始第二次循环,让 i 依次除与 2 和小于它的数,当i= 2时(j < i 条件不成立),直接跳出循环输出:素数 2
for (int j = 2; j < i; j++)
{
//当 i 可以被 j 整除时跳出该循环,该数不是素数,不做输出
if (i % j == 0)
{
flag = false;
break;
}
}
if (flag)
{
if (i == 2 || currentCount == rowCount)
{
sb.AppendLine($" {GetResult(i)}");
rowCount += 2;
currentCount = 0;
}
else
{
sb.Append($" {GetResult(i)}");
currentCount++;
}
}
}
return sb.ToString();
}
string GetResult(int i)
{
if(i > 0 && i < 9)
{
return "00" + i.ToString();
}
else if( i > 10 & i < 99)
{
return "0" +i.ToString();
}
else
{
return i.ToString();
}
}
第三题检查观察代码,分析输出结果
这一题的重点是搞懂
& 运算符的含义
'0' char字符代表的意思
结果是:A1A3A5