週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

競技プログラミング 個人的メモ(2)【C#】


具体事例

X以下の最大の冪乗数を求める

int X = int.Parse(Console.ReadLine());
int ans = 1;
for(var i = 2; i*i <= X; i++){ //2乗フィルタ
    for(var j = i*i; j <=X; j*=i){ //2乗以上フィルタ
          ans = Math.Max(ans,j);
    }
}

入力文字列を90度回転

int N = int.Parse(Console.ReadLine());
char[,] s = new char[N,N];
for(int i = 0; i < N;i++){
 var tmp_s = Console.ReadLine().ToCharArray();
 for(int j = 0; j<N;j++){
  s[i,j] = tmp_s[j];
 }
}
char[,] rs = new char[N,N];
for(int i = 0; i < N;i++){
 for(int j = 0; j<N;j++){
  rs[i,j] = s[(N-1)-j,i];
  Console.Write(rs[i,j]);
 }
 Console.WriteLine();
}