如何计算一个数字进入另一个数字的次数

时间:2016-06-18 16:02:48

标签: c++

这是一个带有初始号码的节目'在问题中陈述为' 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;

3 个答案:

答案 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;
}