请回答下面10个问题:
1、第一个答案是b的问题是哪一个?
(a)2;(b) 3;(c)4;(d)5;(e)6
2、唯一的连续两个具有相同答案的问题是:
(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
3、本问题答案和哪一个问题的答案相同?
(a)1;(b)2;(c)4;(d)7;(e)6
4、答案是a的问题的个数是:
(a)0;(b)1;(c)2;(d)3;(e)4
5、本问题答案和哪一个问题的答案相同?
(a)10;(b)9;(c)8;(d)7;(e)6
6、答案是a的问题的个数和答案是什么的问题的个数相同?
(a)b;(b)c;(c)d;(d)e;(e)以上都不是
7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
8、答案是元音字母的问题的个数是:
(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
9、答案是辅音字母的问题的个数是:
(a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数
10、本问题的答案是:
(a)a;(b)b;(c)c;(d)d;(e)e。
基本思路:
穷举法,把所有答案找出,逐个检验
java实现
public class TenQusetion {
static char[]answer = new char[];
static{
answer[]='a';answer[]='a';answer[]='a';answer[]='a';answer[]='a';
answer[]='a';answer[]='a';answer[]='a';answer[]='a';answer[]='a';
}
public static void main(String[] args) {
while(nextAnswer()){
if(check()){
// System.out.println(answer);
OutArray.outArray(answer);//这个函数是用来输出的,写在另一个文件里面,就不贴出来了
}
}
}
static boolean nextAnswer(){
addNum();
if( answer[]=='e' && answer[]=='e' && answer[]=='e' &&
answer[]=='e' && answer[]=='e' && answer[]=='e' &&
answer[]=='e' && answer[]=='e' && answer[]=='e' &&
answer[]=='e'
){
return false;
}else{
return true;
}
}
private static void addNum(int i){
if(i>=){
answer[i]++;
if(answer[i]>'e'){
answer[i] = 'a';
addNum(i-);
}
}
}
static boolean check(){
//1.
int i1=;
while(i1< && answer[i1++] != 'b'){}
if( (i1==+ && answer[]=='a')||
(i1==+ && answer[]=='b')||
(i1==+ && answer[]=='c')||
(i1==+ && answer[]=='d')||
(i1==+ && answer[]=='e')){
}
else {
return false;
}
//2.
int i2,temp2=,save2=-;
for(i2=;i2<;i2++){
if(answer[i2] == answer[i2+]){
temp2++;
save2 = i2;
}
}
if(temp2!=){
return false;
}else if( (save2== && answer[]=='a')||
(save2== && answer[]=='b')||
(save2== && answer[]=='c')||
(save2== && answer[]=='d')||
(save2== && answer[]=='e')){}
else{
return false;
}
//3.
if( (answer[]==answer[]) && answer[]=='a'){}
else if((answer[]==answer[]) && answer[]=='b'){}
else if((answer[]==answer[]) && answer[]=='c'){}
else if((answer[]==answer[]) && answer[]=='d'){}
else if((answer[]==answer[]) && answer[]=='e'){}
else{
return false;
}
//4.
int count4=;
for(char x:answer){
if(x == 'a') count4++;
}
if( (count4==&& answer[]=='a')||
(count4==&& answer[]=='b')||
(count4==&& answer[]=='c')||
(count4==&& answer[]=='d')||
(count4==&& answer[]=='e')){}
else{
return false;
}
//5.
if( (answer[]==answer[]) && answer[]=='a'){}
else if((answer[]==answer[]) && answer[]=='b'){}
else if((answer[]==answer[]) && answer[]=='c'){}
else if((answer[]==answer[]) && answer[]=='d'){}
else if((answer[]==answer[]) && answer[]=='e'){}
else{
return false;
}
//6.
int countA6=,countB6=,countC6=,countD6=,countE6=;
for(char x:answer){
if(x == 'a') countA6++;
else if(x=='b')countB6++;
else if(x=='c')countC6++;
else if(x=='d')countD6++;
else if(x=='e')countE6++;
}
if(countA6==countB6){
if(answer[]!='a') return false;
}else if(countA6==countC6){
if(answer[]!='b') return false;
}else if(countA6==countD6){
if(answer[]!='c') return false;
}else if(countA6==countE6){
if(answer[]!='d') return false;
}else{
if(answer[]!='e') return false;
}
//7.
int i7 = Math.abs(answer[]-answer[]);
if( (i7== && answer[]=='a')||
(i7== && answer[]=='b')||
(i7== && answer[]=='c')||
(i7== && answer[]=='d')||
(i7== && answer[]=='e')){}
else{
return false;
}
//8.
int count8=;
for(char x:answer){
if(x=='a' || x=='e') count8++;
}
if( (count8==&& answer[]=='a')||
(count8==&& answer[]=='b')||
(count8==&& answer[]=='c')||
(count8==&& answer[]=='d')||
(count8==&& answer[]=='e')){}
else{
return false;
}
//9.
int count9 = -count8;
if((count9== || count9 ==) && answer[]=='e'){}
else if((count9== || count9==)&& answer[]=='d'){}
else if((count9== || count9== || count9==) && answer[]=='c'){}
else if((count9== || count9== || count9==) && answer[]=='b'){}
else if((count9== || count9== || count9== ||
count9== || count9==)&&answer[]=='a'){}
else{
return false;
}
return true;
}
}
C语言实现
#include <stdio.h>
int check();
int nextAnswer();
void addNum();
void outArray();
char answer[] = {'a','a','a','a','a',
'a','a','a','a','a'};
const int TRUE = ;
const int FALSE = ;
void main(){
while(nextAnswer()){
if(check()){
// System.out.println(answer);
outArray();
}
}
}
void outArray(){
int i=;
while(i<)
printf("%c,",answer[i++]);
printf("\n");
}
int nextAnswer(){
addNum();
if( answer[]=='e' && answer[]=='e' && answer[]=='e' &&
answer[]=='e' && answer[]=='e' && answer[]=='e' &&
answer[]=='e' && answer[]=='e' && answer[]=='e' &&
answer[]=='e'
){
return FALSE;
}else{
return TRUE;
}
}
void addNum(int i){
if(i>=){
answer[i]++;
if(answer[i]>'e'){
answer[i] = 'a';
addNum(i-);
}
}
}
int check(){
//1.
int i1=;
while(i1< && answer[i1++] != 'b'){}
if( (i1==+ && answer[]=='a')||
(i1==+ && answer[]=='b')||
(i1==+ && answer[]=='c')||
(i1==+ && answer[]=='d')||
(i1==+ && answer[]=='e')){
}
else {
return FALSE;
}
//2.
int i2,temp2=,save2=-;
for(i2=;i2<;i2++){
if(answer[i2] == answer[i2+]){
temp2++;
save2 = i2;
}
}
if(temp2!=){
return FALSE;
}else if( (save2== && answer[]=='a')||
(save2== && answer[]=='b')||
(save2== && answer[]=='c')||
(save2== && answer[]=='d')||
(save2== && answer[]=='e')){}
else{
return FALSE;
}
//3.
if( (answer[]==answer[]) && answer[]=='a'){}
else if((answer[]==answer[]) && answer[]=='b'){}
else if((answer[]==answer[]) && answer[]=='c'){}
else if((answer[]==answer[]) && answer[]=='d'){}
else if((answer[]==answer[]) && answer[]=='e'){}
else{
return FALSE;
}
//4.
int count4=;
int i4;
for(i4=;i4<;i4++){
if(answer[i4] == 'a') count4++;
}
if( (count4==&& answer[]=='a')||
(count4==&& answer[]=='b')||
(count4==&& answer[]=='c')||
(count4==&& answer[]=='d')||
(count4==&& answer[]=='e')){}
else{
return FALSE;
}
//5.
if( (answer[]==answer[]) && answer[]=='a'){}
else if((answer[]==answer[]) && answer[]=='b'){}
else if((answer[]==answer[]) && answer[]=='c'){}
else if((answer[]==answer[]) && answer[]=='d'){}
else if((answer[]==answer[]) && answer[]=='e'){}
else{
return FALSE;
}
//6.
int countA6=,countB6=,countC6=,countD6=,countE6=;
int i6;
for(i6=;i6<;i6++){
if(answer[i6] == 'a') countA6++;
else if(answer[i6]=='b')countB6++;
else if(answer[i6]=='c')countC6++;
else if(answer[i6]=='d')countD6++;
else if(answer[i6]=='e')countE6++;
}
if(countA6==countB6){
if(answer[]!='a') return FALSE;
}else if(countA6==countC6){
if(answer[]!='b') return FALSE;
}else if(countA6==countD6){
if(answer[]!='c') return FALSE;
}else if(countA6==countE6){
if(answer[]!='d') return FALSE;
}else{
if(answer[]!='e') return FALSE;
}
//7.
int i7 = answer[]-answer[]<? answer[]-answer[]:answer[]-answer[];
if( (i7== && answer[]=='a')||
(i7== && answer[]=='b')||
(i7== && answer[]=='c')||
(i7== && answer[]=='d')||
(i7== && answer[]=='e')){}
else{
return FALSE;
}
//8.
int count8=;
int i8;
for(i8=;i8<;i8++){
if(answer[i8]=='a' || answer[i8]=='e') count8++;
}
if( (count8==&& answer[]=='a')||
(count8==&& answer[]=='b')||
(count8==&& answer[]=='c')||
(count8==&& answer[]=='d')||
(count8==&& answer[]=='e')){}
else{
return FALSE;
}
//9.
int count9 = -count8;
if((count9== || count9 ==) && answer[]=='e'){}
else if((count9== || count9==)&& answer[]=='d'){}
else if((count9== || count9== || count9==) && answer[]=='c'){}
else if((count9== || count9== || count9==) && answer[]=='b'){}
else if((count9== || count9== || count9== ||
count9== || count9==)&&answer[]=='a'){}
else{
return FALSE;
}
return TRUE;
}