-
using System:输入输出语句;
- 获取输入的数字n:
int n = int.Parse(Console.ReadLine());
string[] input = Console.ReadLine().Split(); int m = int.Parse(input[0]); int n = int.Parse(input[1]);
int[] a = Console.ReadLine().Split().Select(int.Parse).ToArray();
- 输出:
Console.WriteLine(i);
Console.WriteLine($"{x} {y} {z}");
- 判断奇偶,求因数;
- 判断素数/质数:
private static bool IsPrime(int n) { if (n <= 1) return false; // 处理非法值 if (n == 2) return true; // 唯一偶素数 if (n % 2 == 0) return false; // 排除其他偶数 // 只检查奇数因子到平方根 for (int i = 3; i * i <= n; i += 2) { if (n % i == 0) return false; } return true; }
int.Parse
是一个方法组,需要直接传递方法名而非调用方法。int.Parse()
会尝试执行无参方法,导致编译错误。switch
语句的case
标签必须使用常量值:switch (score) { case score >= 90: // 错误!case 后不能是动态条件 Console.WriteLine("bool value"); break; } case 标签只能是以下类型: 整数(如 case 90) 字符(如 case 'A') 字符串(如 case "SECURE") 枚举值(如 case MyEnum.Value) const 定义的常量
- 使用
n/2
进行比较时,如果n
是奇数,会向下取整。 - 题目中的输入条件中提到,输入的字符串长度不超过20,且满足a+1=b,b+1 <c。但输入的可能数值可能非常大,比如a和c的值可能超过int.MaxValue或int.MinValue,导致转换时抛出OverflowException。例如,如果输入的是“2147483647,2147483648,...,2147483650”,这时用int.Parse就会溢出,因为int的最大值是2147483647,而第二个数是2147483648,这会超出int的范围,导致异常。
-
在C#中,静态方法不能直接调用非静态方法,除非isPerfect也是静态的。因此,需要将isPerfect方法声明为static:
private static bool isPerfect(int n)
- 检查最低位是否为1:num & 1 .
- Linq语法:
合并:通过 Concat 快速合并两个数组。 去重:Distinct 方法高效去除重复元素。 排序:OrderBy 确保结果按升序排列。 输出:string.Join 直接拼接为无空格字符串。 判断c是大/小写字母:char.IsLower(c);char.IsUpper(c)。 判断c是符合字符:char.IsSymbol(c)。
- 对于长度为n的字符串,那么当n增大时,数量大约是n²级别;
- 中心扩展法:对于字符串"aba",长度为3,可能的中心包括每个字符本身(位置0、1、2)和每两个相邻字符之间的位置(0.5、1.5),总共有2n-1个中心。
od刷题笔记
于 2025-05-16 08:54:42 首次发布