![](/img/trans.png)
[英]How do I find the smallest number than can be divided by all numbers 1:n with no remainder?
[英]I was doing a code for , "Count Digits " , Evenly divides means whether N is divisible by a digit i.e. leaves a remainder 0 when divided
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,m,z;
cout<<"enter n: ";
cin>>n;
z=n;
int count=0;
while(n>0){
m = n % 10;
if(z%m == 0){
count++;
}
n=n/10;
}
cout<<count;
}
代碼應該像前那樣工作-對於 n = 12,它可以被 1、2 整除,因此,如果我取最后一個值為“0”的任何值,則 output 將為 2,那么它不起作用..我我收到錯誤“浮點異常 (SIGFPE)”。 誰能幫我擺脫這個。
這個 while 循環
while(n>0){
m = n % 10;
if(z%m == 0){
count++;
}
n=n/10;
}
沒有多大意義。 例如,在這條語句之后m
可以等於0
m = n % 10;
結果這個聲明
if(z%m == 0){
產生運行時錯誤。
該程序可以通過以下方式查找示例
#include <iostream>
int main()
{
unsigned int count = 0;
int n;
std::cout << "enter n: ";
if ( std::cin >> n )
{
const int Base = 10;
int tmp = n;
do
{
int digit = tmp % Base;
if ( digit != 0 && n % digit == 0 ) ++count;
} while ( tmp /= Base );
}
std::cout << "count = " << count << '\n';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.