这是一个带有初始号码的节目'在问题中陈述为' n'和其他号码'取为10。
void divideme()
static int count=0; //initalised a variable which I'll be returning the value of.
int n;
cin>>n;//taken input of variable which I want to divide by another number (say 10 in this case)
int &rem=n;//created a reference variable which stores the value of n.
while (rem>=10) {
rem=rem%10; //this is to be corrected as rem = rem - 10;
count++;
}
return count;
答案 0 :(得分:2)
%
运算符给出模数,即除法后的余数。
如果您只想计算10进入数字rem
的次数,请替换
rem=rem%10;
与
rem = rem - 10;
你的循环中的。
(另外,您的代码中不需要if (rem>=10)
。while循环会处理此问题。)
答案 1 :(得分:1)
你的代码太过分了。只做一次分裂。结果是10进入该数字的次数。根本不需要循环。 None
运算符为您提供除法的模数(余数),这不是您在这种情况下所需要的。
%
例如:
int divideme()
{
int n;
cin>>n; //get input which I want to divide by another number (say 10 in this case)
return (n / 10);//return how many times it divides by 10
}
10进入9 0次,其余为9次。
9 / 10 = 0
9 % 10 = 9
10进入12345 1234次,其余为5次。
答案 2 :(得分:0)
#include <cmath>
#include <iostream>
int times_divided_by_10(int x)
{
return int(std::log10(double(x)));
}
int main()
{
std::cout << times_divided_by_10(101) << std::endl;
}
预期产出:
2
另一种方式:
#include <iostream>
int times_divided_by_10(int x)
{
int count = 0;
while (x >= 10) {
++count;
x /= 10;
}
return count;
}
int main()
{
std::cout << times_divided_by_10(101) << std::endl;
}