2014-01-21 90 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"); 
} 
相關問題