查找出租车号码
找到第一个n
出租车号码。给定一个值n
。我想找到前n个出租车号码。出租车是可以以多种方式表示为两个完美立方体之和的数字。
(请注意,存在两个 集合,称为“出租车编号”:以
方式的2个立方 ****的
总和,和以
方式2个正整数的立方的总和的最小数。这个问题是关于前一组,因为后一组仅知道前六个成员)
例如:
1^3 + 12^3 = 1729 = 9^3 + 10^3
我想对算法或如何解决该问题的C代码片段进行粗略的概述。
The first five of these are: I J K L Number
---------------------------------
1 12 9 10 1729
2 16 9 15 4104
2 24 18 20 13832
10 27 19 24 20683
4 32 18 30 32832
回答:
我想出了可以通过这种方式获得答案:
#include<stdio.h>int main() {
int n, i, count=0, j, k, int_count;
printf("Enter the number of values needed: ");
scanf("%d", &n);
i = 1;
while(count < n) {
int_count = 0;
for (j=1; j<=pow(i, 1.0/3); j++) {
for(k=j+1; k<=pow(i,1.0/3); k++) {
if(j*j*j+k*k*k == i)
int_count++;
}
}
if(int_count == 2) {
count++;
printf("\nGot %d Hardy-Ramanujan numbers %d", count, i);
}
i++;
}
}
既然a^3+b^3 = n
,a
应该小于n^(1/3)
。
以上是 查找出租车号码 的全部内容, 来源链接: utcz.com/qa/435466.html