我做了一个糟糕的 c++ 程序来计算输入值的阶乘,其中我编写了两个函数来独立进行实际计算(一个迭代,另一个递归)。对我来说没有任何意义的是,为什么迭代阶乘会在 n = 13 左右崩溃,但递归一直到 unsigned long long int 的上限?
PS 我很高兴收到有关我的代码质量的任何建议,并很乐意对其进行修改,谢谢。
#include <iostream>
using namespace std;
unsigned long long int rekursiv_fak (int); // function prototyping
unsigned long long int iterativ_fak (int);
int main () {
unsigned int n; // factorial is defined only for positive integers !!
cout << "Enter a positive integer value: ";
cin >> n;
cout << "The factorial of " << n << " is equal to: " << iterativ_fak(n) << " or …Run Code Online (Sandbox Code Playgroud) 我对以下场景中首先调用的内容有点困惑:
我有一个包含姓名和年龄的 Person 类。
public class Person {
private int age;
private String name;
//constructor, getters, ...
}
Run Code Online (Sandbox Code Playgroud)
我现在尝试比较Person具有相同字段值的两个单独的对象,即相同的名称、相同的年龄
System.out.println(person1.equals(person2));
Run Code Online (Sandbox Code Playgroud)
我显然收到了一个false返回值,因为我还没有重写该equals(Obj object)方法。
但是假设我不重写它,而是编写另一个equals()仅带有参数的方法Person:
public equals(Person person) {
return person.get_age()==this.age && person.get_name().equals(this.name);
}
Run Code Online (Sandbox Code Playgroud)
现在调用哪个方法以及为什么?下面的行仍然返回false
System.out.println(person1.equals(person2));
Run Code Online (Sandbox Code Playgroud)
除非我强迫person2被解释为Person. 因此下面的行返回true
System.out.println(person1.equals((Person)person2));
Run Code Online (Sandbox Code Playgroud)
这就是令我困惑的地方,我现在删除了该类型转换,Person并且由于某种原因,当我一次又一次地构建和运行代码时,它不断返回true。false强制它再次开始返回(即再次继续采用默认方法)的唯一方法equals(Object obj)是删除该equals(Person person)方法,运行代码一次,然后粘贴回我刚刚删除的方法。现在,这种比较又false再次出现了。
JVM 是否缓存了某些中间状态?老实说,我对java有点陌生。
嘿,只是通过一些教科书示例来介绍我的 C++ 入门课程,如果有人能澄清为什么以下代码产生 51 的输出(我希望它不会产生任何输出),我将非常感激,非常感谢!:
#include <iostream>
using namespace std;
int main()
{
constexpr int a{9};
constexpr int b{1};
constexpr int c{5};
if (a < b < c)
if (c > b > a)
if (a > c) cout << 91;
else cout << 19;
else
if (b < c) cout << 51;
else cout << 15;
else
if (b < a < c)
if (a < c) cout << 95;
else cout << 59;
else
if (b < c) …Run Code Online (Sandbox Code Playgroud) c++ ×2
factorial ×1
if-statement ×1
iteration ×1
java ×1
nested ×1
oop ×1
overriding ×1
recursion ×1