UVA340 UVALive5448 Master-Mind Hints
来源:互联网 发布:sql server授权语句 编辑:程序博客网 时间:2024/04/29 23:23
Regionals 1995 >> North America - North Central NA
问题链接:UVA340 UVALive5448 Master-Mind Hints。基础训练题,用C语言编写程序。
题意:输入多组测试用例,每个用例第1个数为n,n=0时结束。后面有若干行,每行输入n个正整数(值范围为1到9),第1行是n个秘密数(需要猜测的数),第2行开始是猜测的n个数,若猜测的n个数全为0则结束进入下一个测试用例。
求的是,猜测的n个数有几个相同(位置和值与值都相同),有几个相关(值相同而位置不同)。
网上相同版本的使用暴力法的程序居多,大概出自一人之手。可是,编写程序是要用巧,哪能动不动就暴力。
另外,编写程序需要考虑通用性,使用宏定义是值得推荐的一种做法。
程序中,使用数组digitcount_s[]和digitcount_i[]来统计各种值出现的次数,这使得计算结果变得简单。
AC的C语言程序如下:
/* UVA340 UVALive5448 Master-Mind Hints */#include <stdio.h>#include <memory.h>#define MIN(a, b) (((a) > (b)) ? (b) : (a))#define VALNUM 10#define MAXN 1000int secret[MAXN];int guess[MAXN];int main(void){ int caseno=1, n, i; int strong, independent; int digitcount_s[VALNUM], digitcount_i[VALNUM]; while(scanf("%d", &n) != EOF && n != 0) { printf( "Game %d:\n", caseno++ ); memset(digitcount_s, 0, sizeof(digitcount_s)); for(i=0; i<n; i++) { scanf( "%d", &secret[i] ); digitcount_s[secret[i]]++; } for(;;) { int sum = 0; strong = 0; independent = 0; memset(digitcount_i, 0, sizeof(digitcount_i)); for(i=0; i<n; i++) { scanf( "%d", &guess[i] ); sum += guess[i]; if(guess[i] == secret[i]) strong++; digitcount_i[guess[i]]++; } if(sum == 0) break; for(i=1; i<VALNUM; i++) independent += MIN(digitcount_s[i], digitcount_i[i]); printf(" (%d,%d)\n", strong, independent - strong); } } return 0;}
1 0
- UVA340 UVALive5448 Master-Mind Hints
- uva340 - Master-Mind Hints
- UVa340 Master-Mind Hints
- UVA340 - Master-Mind Hints
- UVA340 Master-Mind Hints
- uva340 - Master-Mind Hints
- UVA340 - Master-Mind Hints
- UVa340 Master-Mind Hints
- uva340 Master-Mind Hints
- UVa340-Master-Mind Hints
- UVa340 Master-Mind Hints
- Master-Mind Hints—UVa340
- Master-Mind Hints UVa340 排序&&查找
- UVa340——Master-Mind Hints
- 340 - Master-Mind Hints
- uva_340 - Master-Mind Hints
- uva_340 - Master-Mind Hints
- 340 - Master-Mind Hints
- 导航栏标题向右偏移问题解决办法
- PyGobject(二十九)布局容器之SearchBar
- CI框架中QQ邮箱发送邮件
- WPF arcgis中已知圆心坐标和半径,求圆上一点的坐标(当前点的x坐标和圆心相等)
- POJ1830 开关问题【 高斯消元】
- UVA340 UVALive5448 Master-Mind Hints
- ora-1017
- Struts1和Struts2的区别和对比
- 内存泄漏和溢出整理(二)
- HDU 5728 PowMod
- Libevent源码分析-----多线程、锁、条件变量(一)
- 关于hit-testing机制
- 第三章--不得不学的Fragment
- mysql性能优化-慢查询分析、优化索引和配置