反向二进制数4/8测试成功

时间:2015-12-17 14:04:14

标签: c#

我的任务是编写一个用于反转二进制数字的程序。例如,13的二进制表示为1101,反转它给出1011,对应于数字11.其中输入包含一个整数为N的行,1≤N≤1000000000。

我必须通过8次测试,到目前为止我只通过了4/8。输入可以是13,其中预期为11。

示例输入

13

样本输出

11

澄清我没有得到测试的结果,只得到它们的结果。

有关如何更新代码的任何想法?

public class Reversebinary
{
    public static void Main()
    {
        //Convert Decimal to binary
        int num;
        string binary, reversed;

        //Read integer value from console
        num = int.Parse(Console.ReadLine());
        //Console.WriteLine(num);
        if (num > 1 && num < 1000000000)
        {
            //Convert the integer value to string binary
            binary = Convert.ToString(num, 2);

            //reverse string binary
            reversed = reverseString(binary);

            //Console.WriteLine("binary: " + binary);
            //Convert reversed string binary to int32 and print out
            Console.WriteLine(Convert.ToInt32(reversed, 2));
        }
        else
            Console.WriteLine("Number is not between 1 or 1000000000");


    }

    static string reverseString(string str)
    {
        return new string(str.Reverse().ToArray());
    }
}

EDIT1:澄清测试。

EDIT2:请理解我只是希望你对代码有意见,所以我可以改用它来完成测试。我不是要求你提供代码。

EDIT3:问题解决了,我在包含更大/更小或等于运算符后通过了测试。感谢您的所有投入。

2 个答案:

答案 0 :(得分:0)

至少,数字在1≤N≤1000000000,你不考虑1和1000000000。

Promise

此外,您可以使用if (num >= 1 && num <= 1000000000) { //Convert the integer value to string binary binary = Convert.ToString(num, 2); //reverse string binary reversed = reverseString(binary); //Console.WriteLine("binary: " + binary); //Convert reversed string binary to int32 and print out Console.WriteLine(Convert.ToInt32(reversed, 2)); } 代替int.TryParse来避免例外。 因此,您的int.Parse条件应如下所示

if

答案 1 :(得分:0)

试试这个

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

namespace Reversebinary
{
    class Reversebinary
    {
        static byte[] reverseBinary = new byte[] {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15 };  
        static void Main(string[] args)
        {
            //Convert Decimal to binary
            int num;
            int reversed;

            //Read integer value from console
            num = int.Parse(Console.ReadLine());

            if (num >= 0 && num <= 15)
            {

                //reverse string binary
                reversed = reverseBinary[num];

                Console.WriteLine(reversed.ToString("x2"));
            }
            else
                Console.WriteLine("Number is not between 0 and 15");

        }

    }
}
​