2014-01-21 48 views
-4

如何在另一个整数前面添加整数让我们说7,然后向其中添加其他数字。例如,如果在7前面添加1,则它变为17.然后找到它的素数或不。如果在17之前添加3,则它变成317,等等如何在c中添加另一个整数前的整数

+0

如果它小于10,则在添加之前与10相乘。如果它小于100,则在添加之前将该值乘以100。像7 <10所以1 * 10 + 7 = 17和17 <100所以3 * 100 + 17 = 317 –

+0

这个数字是一个'int'还是'string'? – itsme86

+0

数字是用户输入 – Umair

回答

0

将整数转换为一个字符串,并将它们连接起来。

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

如果你想为int之后再次转换为int,你可以用它int.Parse()int.TryParse()

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; 
+1

'17和17 => 17 * 10 + 17 => 170 + 17 = 187' ... oh .. –

+0

@Raphael:true。它可以工作,如果你想在另一个数字/整数前加一个数字。是一种避免强制转换为字符串的方式,但在整数情况下不起作用,正如您在示例中所说的那样。在这种情况下,您必须乘以10以倍增数字的位数。 17有2位=> 10^2 = 100; 17 * 100 + 17 = 1717 :) –

+0

@AndreiAndrei,如何使用您评论的信息更新您的答案;) – elgonzo

1

另一个

string.Concat(1, 13); 

得到一个数字bac ķ

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

只需使用数学:

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

这不会编译,因为Math.Pow返回一个double和一个double * int是double + int仍然是double,并且没有从double到int的隐式转换。 –

+0

@YuriyFaktorovich修复,请参阅编辑 – smac89

4

找出更大的一个号码必须如何适应在其他的前面,那么你乘以该系数,并添加其他号码:

int n1 = 3; 
int n2 = 17; 

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

int result = n1 * x + n2; // 317 
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; 
} 
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"); 
} 
相关问题