HDU 1716 排列2
来源:互联网 发布:淘宝彩票中奖了被改号 编辑:程序博客网 时间:2024/05/16 15:28
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1716 这道题想法简单,但实际操作却并不容易,难怪看算法书之前,那算法书推荐了不少题目与我,在编程能力未达到之前,算法再好,编不出来,也是徒劳。 这道题名为排序,故名思意,就是排序。于是我列了个简单的方案,但这方案,我实现了一个下午: 1.将所有四位数列出 2.排序 3.输出 我的代码如下
这个思路最难的便是列出所有四位数,确实有几次我差点想换个思路,因为我实在想不到怎么输出四位数,还好,编程最不可缺的便是一股倔强,没有解决不了的问题,只有不敢去尝试的问题。走一步再走一步,翻过那座山,前方就是浩瀚的大海。
#includeint main(){ int shu[4] = {1},frist = 1;//shu存四张卡片 while(1) { int sum[26], Sum, t = -1; for(int i = 0; i < 4; i++)//输入四张卡片的数 scanf("%d",&shu[i]); if(!(shu[0]+shu[1]+shu[2]+shu[3])) break;//当四个为零时退出 if(frist) frist = 0; else printf("/n"); for(int i = 0; i < 4; i++)//造出所有 i 开头的四位数并排序输出 { int ok = 0; for(int j = (i+1)%4; j%4 != i; j++) { Sum = shu[i] * 1000 + shu[j%4] * 100; if((j + 1)%4 == i) { sum[++t] = Sum + shu[(j+2)%4]*10 +shu[(j+3)%4]; sum[++t] = Sum + shu[(j+3)%4]*10 +shu[(j+2)%4]; } else if((j+2)%4 == i) { sum[++t] = Sum + shu[(j+1)%4]*10 +shu[(j+3)%4]; sum[++t] = Sum + shu[(j+3)%4]*10 +shu[(j+1)%4]; } else { sum[++t] = Sum + shu[(j+1)%4]*10 +shu[(j+2)%4]; sum[++t] = Sum + shu[(j+2)%4]*10 +shu[(j+1)%4]; } } for(int i = t - 5; i <= t; i++) { int k = i, p, min = sum[i]; for(int j = i + 1; j <= t; j++) if(min > sum[j]) {min = sum[j]; k = j;} if(k != i) { p = sum[i]; sum[i] = sum[k]; sum[k] = p; } } if(t - 10 > 0 && sum[t - 5]/1000 != sum[t - 10]/1000) ok = 1;//如果与上一行的开头不同则可以输出,防止1124这种重复 else if(t - 10 < 0) ok =1; if(ok) { if(sum[t - 5] > 999) { printf("%d", sum[t - 5]); for(int i = t - 4; i <= t; i++) { if(sum[i] != sum[i-1]) printf (" %d",sum[i]); } printf("/n"); } } } } return 0;}
- HDU 1716 - 排列2
- HDU 1716 排列2
- hdu 1716 排列2
- HDU 1716/排列2
- HDU 1716 排列2
- hdu 1716 排列2
- HDU 1716 排列2
- hdu 1716 排列2
- hdu 1716 排列2
- hdu 1716排列2
- HDU 1716 排列2
- HDU 1716 排列2
- hdu--1716--排列2
- HDU 1716 排列2
- HDU 1716 排列2
- hdu 1716 排列2
- hdu 1716排列2
- HDU 1716 排列2
- 深入理解ngx_align_ptr宏
- 外键
- 水平飞舞的图片
- 计算圆的面积和窗体的跳转
- Why It’s Better to Text Than Call in a Mass Emergency
- HDU 1716 排列2
- svn版本控制系统
- Java抽象类和多态
- C++类String的实现代码
- [Hadoop]Pig与Hive的区别
- 自己对IoC(Inversion of Control)的理解
- 黑马程序员_java基础day15
- OpenAL学习笔记(二)---播放音频(*.wav)
- Noj-1441(Babelfish)