如何在c#中的另一个整数前添加整数

时间:2014-01-21 20:06:51

标签: c#

如何在另一个整数前加上整数,比方说7,并为其添加其他数字。例如,如果在7之前添加1,则它变为17.然后找到它的素数。如果在17之前添加3则变为317,依此类推

8 个答案:

答案 0 :(得分:4)

找出一个数字需要多大才能适合另一个数字,然后乘以该因子并添加另一个数字:

int n1 = 3;
int n2 = 17;

int x = 1;
while (x <= n2) {
  x *= 10;
}

int result = n1 * x + n2; // 317

答案 1 :(得分:2)

让我们说你的号码是7

int myNumber = 7;

你想在它前面添加1;

int toAdd = 1;

你所要做的就是说

myNumber = toAdd * 10 + myNumber;

这意味着:

1 * 10 = 10; 10 + 7 = 17; 

上次修改

正如我在评论中所讨论的,我的第一个解决方案只有在您尝试在另一个整数/数字前面添加一个数字时才有效。如果我们尝试在另一个整数前添加一个整数,例如:17和17将失败,因为: 17 * 10 +17 = 170 + 17 = 187,这与1717正确答案不相等

对此的一般解决方案是将10乘以您的数字所具有的数字位数 例如:

如果我想在111前加17,结果应该是17111;

111 has 3 digits -> 10^3 = 1000

比我们将17乘以1000

17000 + 111 =17111

您可以使用while循环检查数字的位数

int digits=0;
while(number >0)
{
number = number/10;
digits++;
}

myNumber = toAdd* 10^digits + myNumber;

答案 2 :(得分:1)

int add = 1;
int before = 7;    
string newNumber = string.Format("{0}{1}", add, before);

如果您想再次将int转换为int,可以使用int.Parse()int.TryParse()

答案 3 :(得分:1)

另一个

string.Concat(1, 13);

获得一个号码

Convert.ToInt32(string.Concat(1, 13));

答案 4 :(得分:1)

仅使用数学:

int num = 7;
int add = 1;
int newNumber = add * (int)Math.Pow(10, 1 + (int)Math.Log10(num)) + num;

答案 5 :(得分:0)

首先将整数转换为字符串并连接它们。

答案 6 :(得分:0)

试试这个:

static int main(){

    int num1 = 7;
    int num2 = 1;
    int num3 = 3;

    string strNum1 = string.Concat(num2.ToString(), num1.ToString());
    string strNum2 = string.Concat(num3.ToString(), num2.ToString(), num1.ToString());
    int newNumber1 = int.Parse(strNum1);
    int newNumber2 = int.Parse(strNum2);

    Console.WriteLine(IsPrime(num1)); // True
    Console.WriteLine(IsPrime(newNumber1)); // True
    Console.WriteLine(IsPrime(newNumber2)); // True
}


/// <summary>
/// Used to determine if number is a prime number
/// </summary>
/// <param name="value">The whole number.</param>
/// <returns></returns>
public static bool IsPrime(int value)
{
    if (value == 1)
    {
        return true;
    }
    else if ((value & 1) == 0)
    {
        if (value == 2)
            return true;
        else
            return false;
    }

    for (int i = 3; (i * i) <= value; i += 2)
    {
        if ((value % i) == 0)
            return false;
    }
    return value != 1;
}

答案 7 :(得分:0)

int n1=Convert.ToInt32(Console.ReadLine());    //let n1=7
int n2=Convert.ToInt32(Console.ReadLine());    //let n2=1
int result=n2*10+n1;   //result=1*10+7=17

现在检查素数

int flag=0;
for(int i=2;i<result;i++)
{
    if(result%i==0)
    {
        flag=1;
    }
}
if(flag==0)
{
    Console.WriteLine("No. is prime");
}