27 lines
663 B
Vala
27 lines
663 B
Vala
int fusc(int n) {
|
|
if (n == 0 || n == 1)
|
|
return n;
|
|
else if (n % 2 == 0)
|
|
return fusc(n / 2);
|
|
else
|
|
return fusc((n - 1) / 2) + fusc((n + 1) / 2);
|
|
}
|
|
|
|
void main() {
|
|
print("The first 61 fusc numbers:\n");
|
|
for (int i = 0; i < 61; i++)
|
|
print(@"$(fusc(i)) ");
|
|
print("\n\nThe fusc numbers whose lengths are greater than those of previous fusc numbers:\n");
|
|
print(" n fusc(n)\n");
|
|
print("-------------------\n");
|
|
var max_length = 0;
|
|
for (int i = 0; i < 700000; i++) {
|
|
var f = fusc(i);
|
|
var length = f.to_string().length;
|
|
if (length > max_length) {
|
|
max_length = length;
|
|
print("%9d %9d\n", i, f);
|
|
}
|
|
}
|
|
}
|