超除算法
Algorithm for superdivide
本文关键字:算法 更新时间:2023-10-16
如果数字中的每个数字都除以数字,则 int 是超除法。示例 128
除以自身,因为128
可以被不能被 0
整除1, 2, and 8
的超除数
Sample Input #1
superDivide(184)
Sample Output #1
true
Sample Input #2
superDivide(39)
Sample Output #2
false
Sample Input #3
superDivide(120)
Sample Output #3
false
在此处输入代码
public class SuperDivide {
public static void main(String[] args) {
SuperDivide obj = new SuperDivide();
boolean result = obj.checkSuper(1001);
System.out.println(result);
}
public boolean checkSuper(int num){
//write your code here
int n1;
int n2=num;
if(num%10==0)
return false;
while(num>0){
n1=num%10;
if(n2%n1==0){
num=num/10;
return true;
}
}
return false;
}
上面的代码最多可以运行到数字,但不能运行到 3 位,有什么建议吗?
一些逻辑错误,如除以零和返回的错误放置:
这是工作代码:
public static void main(String[] args) {
SuperDivide obj = new SuperDivide();
boolean result = obj.checkSuper(66);
System.out.println(result);
}
public boolean checkSuper(int num) {
//write your code here
int n1;
int n2 = num;
while (num > 0) {
n1 = num % 10;
if (n1 == 0) {
return false;
}
if (n2 % n1 == 0) {
num = num / 10;
} else {
return false;
}
}
return true;
}
也许你的方法应该看起来像这样:
public boolean checkSuper(int num) {
int n1;
int n2 = num;
while(num > 0) {
if(num % 10 == 0) {
return false;
}
n1 = num % 10;
if(n2 % n1 == 0) {
num = num / 10;
} else {
return false;
}
}
return true;
}
我认为这会起作用!
好的,你有一个数字。我们称之为num
.显然,我们需要一个remaining
我们初始化 num
.由于我们根本不想修改num
,让我们保持友善并声明是否final
.这可以防止我们意外更改它。
最后一个数字,我们称之为lastDigit
可以通过剩余的%10来确定。
现在我们测试if lastDigit == 0 or (num % lastDigit != 0)
-> return false
否则,我们更进一步,remaining = remaining/10
并再次测试最后一个数字,直到 remaining
= 0。因此,我们可以将整个事情包装在一个while(remaining > 0)
循环中。
正在做的事情略有不同,因为您修改了原始num
变量,这意味着在第二次测试中,您不会将原始数字除以值,而是将修改后的 num 除以值。结果?不知道。可能不是真的正确。
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 算法问题:查找从堆栈中弹出的所有序列
- 下面是排序算法O(n)吗
- KMP算法和LPS表构造的运行时间
- 为什么我的排序算法会更改数组值
- 求最大元素位置的分治算法
- 具有非整数边容量的最大流量的Dinic算法
- 到连接组件算法的问题(递归)
- STL算法函数在多个一维容器上的使用
- 读取最后一行代码算法 - c++ 时出现问题
- 括号更改 O(n) 算法
- std::unordered_map 搜索算法是如何实现的?
- 如何实现高效的算法来计算大型数据集的多个不同值?
- 如何在 Mac 上使用 c++17 并行标准库算法?