Paiza Cランク獲得問題（Dランク相当） ループメニュー2

paizaのCランク獲得問題の解答がなかったので、備忘録として残します。
明らかに簡単な問題の場合は省略しますが、個人的に少しでも考えたコードを残していきたいと思います。
初心者ですので醜いコードを書きますが、温かい目で見守っていただけると嬉しいです。
また、より良い記述方法などありましたら、コメント等で教えていただけると嬉しいです。

# 目次
- 未知数個の数の受け取り 
- 奇数だけ出力
- カウント変数を使った計算
- 2 で何回割れる？
- 10 進数から 2 進数に変換
- 10 進数から M 進数に変換
- N が M ずつ増えたときにいつ K を越える？
- 毎日増加するお金
- 階乗の計算
- 階乗の末尾に 0 はいくつ付く？
- 加算された数列の最大値
- 1 はどこにある？ 
- 約数の個数
- 約数の列挙




## 未知数個の数の受け取り 
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__unknown_int/edit?language_uid=c-sharp)
```c#
using System;
using System.Linq;

class Program
{
    public static void Main()
    {

        int []a=Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
        foreach(var result in a){
            Console.WriteLine(result);
        }
    }
}

```
題意は満たしていません。分からなかったです。。
次の問題も同じです。

## 奇数だけ出力
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__even_output/edit?language_uid=c-sharp)
```c#
using System;
using System.Linq;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int []a=Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
        for(int i=0;i<N;i++){
            if(a[i]%2==1){
                Console.WriteLine(a[i]);
            }
        }
    }
}

```
割り切れる数だけ出力もほぼ同じです。
偶奇の判定もやること同じです。

## 各桁の和
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__digit_sum/edit?language_uid=c-sharp)
```c#
using System;


class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int sum=0;
        while(0<N){
            sum+=(N%10);
            N=(N/10);
        }
        Console.WriteLine(sum);
    }
}


```
調べて出てきました
10で割った余りが1の位の値になり、商をNに置き換える
これを繰り返すと各桁の和を計算することが出来る。

2 で何回割れる？の問題もこの考えで解けます。


## カウント変数を使った計算
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__index_multi/edit?language_uid=c-sharp)
```c#
using System;
using System.Linq;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int []M=Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
        for(int i=0;i<N; i++){
            Console.WriteLine(M[i]*(i+1));
        }
    }
}


```
## 2 で何回割れる？
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__div_two/edit?language_uid=c-sharp&t=9b45808e1fa5ca648b0be4623e49e0c5)
```c#
using System;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int count=0;
        while(N%2==0){
            N=(N/2);
            count++;
        }
        Console.WriteLine(count);
    }
}

```
任意の数で何回割れる？も同じです。

## 10 進数から 2 進数に変換
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__conv_binary/edit?language_uid=c-sharp)
```c#
using System;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        string N2=Convert.ToString(N,2);
        Console.WriteLine(N2);
    }
}

```
Convertを使いました、題意に沿っていません。

## 10 進数から M 進数に変換
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__conv_nbase/edit?language_uid=c-sharp)
```c#
using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        string []NM=Console.ReadLine().Split();
        int N=int.Parse(NM[0]);
        int M=int.Parse(NM[1]);
        List<int> list =new List<int>();
        while(N>0){
            list.Add(N%M);
            N=N/M;
        }
        list.Reverse();
        foreach(int result in list)  {
            Console.Write(result);
        }
    }
}

```

## N が M ずつ増えたときにいつ K を越える？
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__inc_m/edit?language_uid=c-sharp)
```c#
using System;

class Program
{
    public static void Main()
    {
        string []NMK=Console.ReadLine().Split();
        int N=int.Parse(NMK[0]);
        int M=int.Parse(NMK[1]);
        int K=int.Parse(NMK[2]);
        int count=0;
        while(N<=K){
            N=N+M;
            count++;
        }
        Console.WriteLine(count);
    }
}


```

##  毎日増加するお金
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__inc_percent/edit?language_uid=c-sharp)
```c#
using System;

class Program
{
    public static void Main()
    {
        string []AB=Console.ReadLine().Split();
        int A=int.Parse(AB[0]);
        int B=int.Parse(AB[1]);
        
        int count=0;
        while(A<=B){
            int increase=(int)(A*0.1);
            A+=increase;
            count++;
        }
        Console.WriteLine(count);
    }
}


```

## 階乗の計算
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__factorial/edit?language_uid=c-sharp)
```c#
using System;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int result=1;
        for(int i=1;i<=N;i++){
            result*=i;
        }
        Console.WriteLine(result);
    }
}


```

## 階乗の末尾に 0 はいくつ付く？
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__factorial_zero/edit?language_uid=c-sharp)
```c#
using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int count=0;
        for(int i=5;i<=N;i++){
            int num=i;
            while(num%5==0){
                count++;
                num/=5;
            }
        }
        Console.WriteLine(count);
    }
}

```
5が何個あるか数えるのと同義です。

## 加算された数列の最大値
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__add_maxseq/edit?language_uid=c-sharp)
```c#
using System;
using System.Linq;
class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int []a=Console.ReadLine().Split().Select(int.Parse).ToArray();
        int []result =new int[N];
        for(int i=0;i<N;i++){
            result[i]=a[i]+i+1;
        }
        Console.WriteLine(result.Max());
    }
}


```
加算された数列の最小値もやることは同じです

## 1 はどこにある？ 
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__seq_one/edit?language_uid=c-sharp)
```c#
using System;
using System.Linq;
class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int []a=Console.ReadLine().Split().Select(int.Parse).ToArray();
        for(int i=0;i<N;i++){
            if(a[i]==1){
                Console.WriteLine(i+1);
            }
        }
    }
}


```

## 約数の個数
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__divsor_count/edit?language_uid=c-sharp)
```c#
using System;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        int count=0;
        for(int i=1;i<=N;i++){
            if(N%i==0){
                count++;
            }
        }
        Console.WriteLine(count);
    }
}


```

## 約数の列挙
[問題文](https://paiza.jp/works/mondai/loop_problems2/loop_problems2__divsor_print/edit?language_uid=c-sharp)
```c#
using System;

class Program
{
    public static void Main()
    {
        int N=int.Parse(Console.ReadLine());
        
        for(int i=1;i<=N;i++){
            if(N%i==0){
                Console.WriteLine(i);
            }
        }
        
    }
}


```