C++ 为什么';计数整数是否返回d的期望值?数字是多少?
我正在处理代码战中的一个编码问题,我很难从测试值以及它们提供的示例测试中计算出正确的答案! 提示如下:C++ 为什么';计数整数是否返回d的期望值?数字是多少?,c++,algorithm,math,codewarrior,C++,Algorithm,Math,Codewarrior,我正在处理代码战中的一个编码问题,我很难从测试值以及它们提供的示例测试中计算出正确的答案! 提示如下: “取一个整数n(n>=0)和一个数字d(0nbDig()是static。为什么通过一个对象调用它?你明白为什么正确的答案分别是4和11吗?(如果不明白,那意味着你不明白你应该编码什么,所以你没有成功的希望).int j=i;-->int j=i*i;,ii是,因为n代表数字,d代表我们正在计数的指定数字,因此在调用nbDig(10,1)的情况下有10个整数被计算出来,然后被平方,但是指定的要计
“取一个整数n(n>=0)和一个数字d(0
nbDig()
是static
。为什么通过一个对象调用它?你明白为什么正确的答案分别是4和11吗?(如果不明白,那意味着你不明白你应该编码什么,所以你没有成功的希望).int j=i;
-->int j=i*i;
,i
-->i是,因为n代表数字,d代表我们正在计数的指定数字,因此在调用nbDig(10,1)的情况下有10个整数被计算出来,然后被平方,但是指定的要计数的数字是1,所以所有带“1”的整数都应该被计数掉。好了,现在我明白了我弄糟的地方,我需要在数字被计数之前合并数字的平方--,我修正了它们,现在它是一个关--,而我确实看到了你所说的输出ut仍然是一样的,并没有真正改变程序的任何内容
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include<array>
#include<assert.h>
#include<fstream>
using namespace std;
class CountDig
{
public:
static int nbDig(int n, int d);
};
int CountDig::nbDig(int n, int d)
{
int count = 0;
for (int i = 0; i < n; i++)
{
int j = i;
while (j > 0)
{
if (j % 10 == d)
count++;
j /= 10;
}
}
return count;
}
int main()
{
CountDig cnt;
//count.nbDig();
cout << cnt.nbDig(10, 1) << endl;
system("PAUSE");
return 0;
}
int countDigit( int num, int digit ) {
if( num == 0 && digit == 0 ) return 1; // special case initial condition for 0 and 0
int count = 0;
int j = i;
while (j > 0)
{
if (j % 10 == d)
count++;
j /= 10;
}
return count;
}