2015-10-06 176 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'。

相关问题