1. 程式人生 > >隨意輸入一個正整數n, 在輸入轉化的進位制數,將轉化後的序列輸出,並判斷某一個數字的個數,這裡給的是二進位制的例子

隨意輸入一個正整數n, 在輸入轉化的進位制數,將轉化後的序列輸出,並判斷某一個數字的個數,這裡給的是二進位制的例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        //判斷總共有多少個0和1
        static int hex0, hex1;
        static List<int> hexStr = new List<int>();
        static void Main(string[] args)
        {

            //十進位制的正整數,進位制數
            int num, hexNum;
            Console.Write("請輸入一個十進位制的正整數,點選回車鍵完成輸入: ");
            num = int.Parse(Console.ReadLine());

            Console.Write("請輸入需要轉換的進位制,點選回車鍵完成輸入: ");
            hexNum = int.Parse(Console.ReadLine());

            //遞迴呼叫函式
            Change(num, hexNum);
            //輸出轉換後的01序列
            for (int i = 0; i < hexStr.Count; i++)
            {
                Console.Write(hexStr[i] + " ");
            }
            Console.WriteLine();
            Console.WriteLine("將10進位制轉化後為" + hexNum + "後,包含" + hex0 + "個0,和" + hex1 + "個1");
            Console.ReadKey();

        }

        public static void Change(int n, int b)
        {
            if (n == 0)
            {
                return;
            }
            Change(n / b, b);
            hexStr.Add(n % b);
            if (n % b == 0)
                hex0++;
            else
                hex1++;
        }
    }
}