OJ刷题---立方和等式
来源:互联网 发布:淘宝助理5.6.9 编辑:程序博客网 时间:2024/05/02 04:27
题目要求:
输入代码:
#include<iostream>#include<cmath>using namespace std;typedef struct node{ int data[4]; struct node *next;} node,*nodep;int arr[30];void Power(){ arr[0]=0; for(int i=0; i<30; i++) { arr[i]=i*i*i; }}void sort(int arr[],int n)//冒泡法将数组array中的元素按从小到大的顺序排序{ int i,j,temp; for(j=0; j<n-1; j++) for(i=0; i<n-1-j; i++) if(arr[i]>arr[i+1]) { temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; }}int main(){ Power(); nodep head,p,q; head=new(node);//用于存放数据的链表头结点 head->next=NULL; q=head; int i,j,k,t; for(i=1; i<=29; i++) { for(j=1; j<=29; j++) { if(i==j) { continue ; } for(k=1; k<=29; k++) { if(i == k || j == k) continue; for(t=1; t<=29; t++) { if(i == t || j == t || k == t)//避免出现重复数据 continue; if((arr[i] + arr[j]) == (arr[k] +arr[t])) { int flag=0; p=new(node); p->data[0]=i; p->data[1]=j; p->data[2]=k; p->data[3]=t; sort(p->data,4);//排序方根数 nodep px=head; while(px) { int m; for(m=0; m<4; m++) { if(px->data[m]!=p->data[m])//判断新结点中的数据是否与已存在的数据重复 break; } if(m==4)//当新结点中的数据与已存在的数据重复时将结束标志置为1,并结束while循环 { flag=1; break; } else px=px->next;//否则指针后移 } if(flag)//结束标志为1时,即新结点中的数据与已存在的数据重复时,释放新结点,并结束本次循环 { delete(p); continue; } //将新结点连接到链表中 p->next=NULL; q->next=p; q=p; //输出找到的组合 for(int a=0; a<3; a++) { cout<<p->data[a]<<","; } cout<<p->data[3]<<endl; } } } } } return 0;}
运行结果:
总结:一开始打算只用穷举法,看能否列出所有情况,但后来发现那根本解决不了问题。因为不仅需要立方相等,还需要从小到大列出方根的情况,而且不能重复,于是思考了半天,还是解决不了,最终选择了参考别人的解答,用到了链表,这个自己最薄弱的知识点。用链表读取数据,而后指向数组的地址排序方根,果然方便多了,而且没有重复,自己在用穷举出现的列举重复问题,链表得以解决了。虽然解不出,但收获还是蛮大的。。。
0 0
- OJ刷题---立方和等式
- 立方和等式
- 立方和等式
- 立方和等式
- 立方和等式
- 立方和等式
- 蓝桥杯 立方和等式 数的全排列
- zzuli OJ 1049: 平方和与立方和
- 【湘大oj】1173-(立方和)
- 杭电oj 2007 平方和和立方和
- 【杭电-oj】-2007-平方和与立方和
- 第12周OJ实践 递归求解立方累加和
- 杭电OJ 2007.平方和与立方和
- 立方和
- FZU OJ 1707 等式数量
- BUPT OJ 非平方等式
- 南邮 OJ 1007 完美立方
- 枚举—案例(完美立方等式poj1543)
- hdoj4004The Frog's Games【二分】
- 开发中最常用的GitHub上 优秀的 Android 开源项目整理
- Eclipse Java EE透视图下看不见Referenced Libraries解决办法
- java随笔
- atitit.薄伽梵歌overview attilax 读后感
- OJ刷题---立方和等式
- 漂亮的不像实力派--锤子新品“坚果手机”发布会
- webapi 返回Json数据格式中的null值替换
- 使用Qt(mingw)编译FreeType为 .a 静态库
- Windows下如何将cmd命令添加到右键菜单
- Scrapy学习笔记(三)
- HDU 3068 manacher算法(O(n)的最长回文串算法)
- OpenCV + MFC 鼠标键盘控制截取图像
- mysql5.6 Zip格式配置方法