n个数可以被给定数字整除的数字
我需要找到任意数字> 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,但我都可以输出。
对于输入我的代码是错误的,我不知道为什么。
已更新 这是您需要的吗?
第一个数字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 . . .
不,我需要找到任意数字,N位可以被一个随机给定的数字整除! – Mas
你不能生成一个随机数字?我的解决方案运气好随机数,我相信这是你自己添加的最简单的部分。 –
@Mas:这个答案适用于你,你只需要改变他使用'n'的部分,而改为'10^n - 1'。 –
这里有一个程序对你:
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,并查看结果。
=)很好的答案。我希望他能理解它。 –
男人,我需要找到任何数字N位可以被数字整除! – Mas
@mas这可能比一个编程问题更简单的数学问题。托马斯显示的内容很容易推断出你想要的数字范围,用于循环。我们不会在此为您提供现成的代码,或者作为在线调试服务运行。 –
如果您需要知道有多少个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
里有出现两种可能性问题。 1.如果M(< 10)那么答案将是类型“MMMMMM ....”高达N位。 2.如果M(== 10),那么如果N == 1,那么将不会有可能的数字,因为没有一个数字可以被10整除,但是对于N> 1的回答将是类型“11111 ..” 1位数字后跟'0'。
是不是作业不相关;重要的是对这个问题投入的努力量。在这种情况下,这似乎是零。 –
我尝试了一些东西,但它是错误的,你会告诉我该怎么做吗? – Mas
如果你向我们展示你的尝试并告诉我们它是怎么回事,那么是的;这就是这个网站的用途。但是,如果您不执行这些任何一项操作,我们将不会为您编写代码。 –