int Solution::isPower(int A) {
if(A == 1)
{
return true;
}
for(int x = 2; x <= sqrt(A); x++)
{
unsigned long long product = x * x;
while(product <= A && product > 0)
{
if(product == A)
{
return true;
}
product = product * x;
}
}
return false;
}
但是,我从geeksforgeeks中找到了另一个解决方案,它只使用对数除法来确定值是否可以用两个整数的幂表示。
bool isPower(int a)
{
if (a == 1)
return true;
for (int i = 2; i * i <= a; i++) {
double val = log(a) / log(i);
if ((val - (int)val) < 0.00000001)
return true;
}
return false;
}
谁能给我解释一下上面的对数解吗?提前谢了。
它用数学来解决这个问题。
9=3^2
Log 9 = log 3^2... Adding log at both side
Log 9 = 2 * log 3...using log property
2 = log 9 / log 3
如您所见,最后一条语句相当于代码double val=log(a)/log(i);
然后它检查val-round(Val)是0...如果是真的,Val是ans,否则就不是0。对数不能给出精确的ANS。
问题内容: 我想要两个整数,一个除以另一个以获得小数或百分比。如何获得这两个整数的百分比或小数?(例如,我不确定是否正确。我可能离…): 这就是我以为自己可以做到的方式,但是它没有用…我想将小数(如果有的话)设为100的百分数,例如,在这种情况下为%25。有任何想法吗? 这是正确的代码(感谢Salvatore Previti!): (顺便说一句,我正在使用此项目进行测验程序,这就是为什么我需要百分
问题内容: 我正在尝试编写代码以比较两个数组。在第一个数组中,我输入了自己的数字,但是在第二个数组中,输入了输入文件中的数字。该数组的大小由文件中的第一个数字确定,而第一个数组的大小始终为10。两个数组以及数字的长度必须相同。 我的代码如下: 问题答案:
有没有一个相当标准的C(Linux)函数,或者一种代码高效但性能良好的方法来比较任意大小的两个整数? 我正在寻找一些参数为int intcmp(const void*a,const void*b,size\t size)的东西,它适用于任何实际大小的整数。(如果架构是big-endian的话(我认为)可以工作。) 我倾向于使用这样的实现(通过高效整数比较函数的改进),但它不是完全通用的,并且有足够
我是一名编程学生,我在这个问题上遇到了很多麻烦: “完成一个静态方法multipleof,它接受两个int参数number和count。方法体必须返回一个包含number的第一个计数倍数的int数组。例如,
我想求两个整数之间的偶数奇偶数的个数。以下是我目前所写的内容: 这个很管用。但是,和这两个整数之间的差值可能高达,这意味着类似这样的解决方案是行不通的。是否有一个更有效的,即解决方案来解决这个问题?