- 题目
- 思路
- 重点
- 代码实现
2、立方和–1100
时间限制: | 空间限制:
题目描述:
给出一个正整数 ,请判断 是否可以被表示为两个正整数的立方之和。共 组测试数据。
输入格式:
第一行仅有一个正整数 ( ),表示测试数据的组数。
接下来有 组测试数据,每组仅一行一个正整数 ( )。
输出格式:
对于每组测试数据,输出一行一个字符串:
若 能被表示为两个正整数的立方之和,输出 ;
否则,输出 ;
输出大小写都行。
用map去存立方数,枚举第一个数,在通过map证明第二个数的存在
重点注意开longlong
代码实现#includeusing namespace std; #define ll long long int t; ll n; map mp; inline void init(){ for(ll i=1;i<=10000;i++)mp[i*i*i]=true; } int main(){ scanf("%d",&t); init(); while(t--){ scanf("%lld",&n); bool flag=false; for(ll i=1;i*i*i<=n;i++){ ll s=(ll)n-i*i*i; if(mp[s]){ flag=true; break; } } if(flag)printf("YESn"); else printf("NOn"); } return 0; }



