poj2692 解题报告
来源:互联网 发布:网络彩票哪个最好 编辑:程序博客网 时间:2024/06/05 07:29
这个题目的意思是根据三组输入信息判断出哪一个字母代表的硬币是假的,并且需要判断出是轻还是重?
解题思路:
我们可以将这个12个字母罗列出来,一个一个进行假设尝试判断,看对应的输入是否成立. 每一个字母有两种情况,因此最多总共有24种情况
#include <stdlib.h>#include <stdio.h>#include <string.h>#defineCOL 5 char left[3][COL],right[3][COL],result[3][COL];char arr[13]="ABCDEFGHIJKL";int lighter(char c) {int i;for(i=0;i<3;i++) {if(result[i][0]=='e') {if(!strchr(left[i],c) != !strchr(right[i],c)) return 0;}if(result[i][0]=='u') {if(!strchr(right[i],c)) return 0;}if(result[i][0]=='h') {if(!strchr(left[i],c)) return 0;}}return 1;}int heavier(char c) {int i;for(i=0;i<3;i++) {if(result[i][0]=='e') {if(!strchr(left[i],c) != !strchr(right[i],c)) return 0;}if(result[i][0]=='h') {if(!strchr(right[i],c)) return 0;}if(result[i][0]=='u') {if(!strchr(left[i],c)) return 0;}}return 1;}int main() {int i;while(1) {memset(left,'\0',3*COL);memset(right,'\0',3*COL);memset(result,'\0',3*COL);for(i=0;i<3;i++) {scanf("%s %s %s",left[i],right[i],result[i]);}for(i=0;i<12;i++) {if(lighter(arr[i])) {printf("%c is the counterfeit coin and it is lighter\n",arr[i]);break;}else printf("%c is not the counerfeit coin\n",arr[i]);if(heavier(arr[i])) {printf("%c is the counterfeit coin and it is heavy\n",arr[i]);break;}}}return 1;}
- poj2692 解题报告
- POJ2692假币
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- POJ2692假币问题
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- Thread和Looper以及Handler和Message详解
- 再谈关于自定义纸张-对显示的影响
- Android Display System -- Surface Flinger
- C# Response 和 Request
- Java NIO 学习笔记 - ByteBuffer
- poj2692 解题报告
- SQL 语句
- hdoj 1021||nbut 1013 Fibonacci Again (规律)
- C# 格式化字符串几种方式总结 String.Format
- C++内联函数(Inline)介绍
- 利用myeclipse 生成Hibernate Mapping文件时出现No entries available的解决办法
- 模式对话框和非模式对话框销毁的不同
- 定义和声明的区别,它们在头文件、源文件中的位置,extern的用法
- Core Data遇到的问题(Unresolved error Error Domain=NSCocoaErrorDomain)