你这cbrt有问题啊
2024-05-24 21:07:27
发布于:广东
题目链接
我在dev测是没错的,怎么到你这就成2744了
代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
struct node{
int cube, i, j, k;
}a[100005];
int ct, n;
bool cmp(node a, node b){
if(a.cube == b.cube){
if(a.k == b.k){
if(a.j == b.j) return a.i < b.i;
return a.j < b.j;
}return a.k < b.k;
}
return a.cube < b.cube;
}int pow3(int n){
return n * n * n;
}
int main(){
cin >> n;
for(int i = 2; i <= n; i++){
for(int j = 2; j <= i; j++){
int l = cbrt(pow3(i) + pow3(j)), r = cbrt(pow3(i) + pow3(j) * 2);
//cout << l << ' ' << r << endl;
for(int _ = l; _ <= r; _++){
int k = pow3(_) - pow3(i) - pow3(j);
int ans = cbrt(k);
if(i == 25 && j == 20 && _ == 30) cout << pow3(cbrt(k)) << endl;
if(pow3(ans) == k && ans >= 2 && _ <= n && ans <= j) a[++ct] = {_, i, j, ans};
}
}
}sort(a + 1, a + ct + 1, cmp);
for(int i = 1; i <= ct; i++) printf("Cube = %d, Triple = (%d,%d,%d)\n", a[i].cube, a[i].k , a[i].j, a[i].i);
return 0;
}
全部评论 4
我咋在这里没问题,到dev就不行了?
2024-07-14 来自 广东
0¿我嘞个反方向的
2024-07-14 来自 广东
0就一个判断,也不知道为啥dev那动不了,这里就显示正确
2024-07-14 来自 广东
0
buxing
2024-05-25 来自 广东
0niaixinbuxin
2024-05-25 来自 广东
0
cbrt没问题
2024-05-24 来自 新加坡
0改成pow(cbrt(k), 3)就没问题了
2024-05-24 来自 新加坡
0那题立方根的题,cbrt对一般,我怎么改都不行,有谁能帮我看看
2024-05-25 来自 广东
0额……这第15位小数为8,第16位小数为2
2024-05-25 来自 广东
0
6
2024-05-24 来自 广东
0
有帮助,赞一个