2015-10-06 174 views
-2

我需要找到任意數字> 0,n個數字(< = 10)可以被數字m整除(< = 10)。n個數可以被給定數字整除的數字

這是我的嘗試:

#include <bits/stdc++.h> 
using namespace std; 

int main() { 
    int n, t, k, r=1; 
    cin>>n>>t; 
    k=n; 
    while(k--) 
     r*=10; // i am making 10^n 
    r/=10;  // a 0 was in plus 

現在,我從10搜索^ n至10^N + 10一個數字,是被T整除,知道我個人有T < = 10,我應該有一個可以被它整除的數字。

for(int i=r; i<=r+10; ++i) 
    if(i%t==0){ 
      cout<<i; 
      return 0; 
    } 
} 

我只拿到了這個例子:

3 2 

答案是712,但我都可以輸出。

對於輸入我的代碼是錯誤的,我不知道爲什麼。

+5

是不是作業不相關;重要的是對這個問題投入的努力量。在這種情況下,這似乎是零。 –

+0

我嘗試了一些東西,但它是錯誤的,你會告訴我該怎麼做嗎? – Mas

+4

如果你向我們展示你的嘗試並告訴我們它是怎麼回事,那麼是的;這就是這個網站的用途。但是,如果您不執行這些任何一項操作,我們將不會爲您編寫代碼。 –

回答

0

已更新 這是您需要的嗎?

第一個數字n是數字的位數。 第二個數字m是分隔符。

#include <iostream> 
#include <string> 

using namespace std; 
int m, n; 
bool searchDivisibleNumbers(int n, int m); 

int main() 
{ 
    cin >> n >> m; 

    while (searchDivisibleNumbers(n,m)) 

    return 0; 
} 

bool searchDivisibleNumbers(int n, int m) 
{ 
    int digits = pow(10, n-1); //huge number of n digits 

    while (digits != 0){ 

     if (digits % m == 0){ 
      cout << digits << " is divisible by " << m << endl; 
     } 
     digits--; 
    } 
    return true; 
} 

輸入:N = 3(3位),M = 17 輸出:

3 17 
85 is divisible by 17 
68 is divisible by 17 
51 is divisible by 17 
34 is divisible by 17 
17 is divisible by 17 
Press any key to continue . . . 
+0

不,我需要找到任意數字,N位可以被一個隨機給定的數字整除! – Mas

+0

你不能生成一個隨機數字?我的解決方案運氣好隨機數,我相信這是你自己添加的最簡單的部分。 –

+0

@Mas:這個答案適用於你,你只需要改變他使用'n'的部分,而改爲'10^n - 1'。 –

0

這裏有一個程序對你:

int main(void) 
{ 
    int i = 0; 
    cout << "Enter number: "; 
    cin >> i; 
    int m = 0; 
    cout << "Enter divisor: "; 
    cin >> m; 
    if (m == 0) 
    { 
    cerr << "Can't divide by zero, aborting.\n"; 
    return EXIT_FAILURE; 
    } 
    cout << "Your number " 
     << i; 
    if ((i % m) == 0) 
    { 
    cout << " is divisible by " 
     << m 
     << "\n"; 
    } 
    else 
    { 
    cout << "not divisible by " << m << "\n"; 
    } 
    return EXIT_SUCCESS; 
} 

你應該能夠進入10數字和除數m,並查看結果。

+0

=)很好的答案。我希望他能理解它。 –

+0

男人,我需要找到任何數字N位可以被數字整除! – Mas

+1

@mas這可能比一個編程問題更簡單的數學問題。托馬斯顯示的內容很容易推斷出你想要的數字範圍,用於循環。我們不會在此爲您提供現成的代碼,或者作爲在線調試服務運行。 –

1

如果您需要知道有多少個N位數字可以用M除,那麼可以使用公式很容易地完成。比方說,我們想知道的是由17整除的所有5位數字,我們要做的是找到可以提高17分最少5位數,所以如果我們做

10000 % 17 

我們得到4所以當我們做

10000 - 4 + 17 

我們得到10013這是一個可以由17分現在,我們需要知道有多少17 mutiples在[10013,99999]範圍內的第5位數字。我們需要找到最大的5位數的整數,我們可以得到簡單的整數除法和multiplcation

99999/17 * 17 = 99994 

而得到倍數的數,我們採取

(max - min )/17 
(99994 - 10013)/17 
    89981  /17 = 5293 
0

裏有出現兩種可能性問題。 1.如果M(< 10)那麼答案將是類型「MMMMMM ....」高達N位。 2.如果M(== 10),那麼如果N == 1,那麼將不會有可能的數字,因爲沒有一個數字可以被10整除,但是對於N> 1的回答將是類型「11111 ..」 1位數字後跟'0'。

相關問題