问题标题: 读心术

0
0
已解决
吴绍东
吴绍东
新手守护
新手守护

#include<iostream>
#include<fstream> 
#include<windows.h>
#include<cstdio>
#include<cstring>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<vector> 
#include<sstream>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //头文件是借用XACRAFT的 
using namespace std;
void console(){
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);  
    CONSOLE_SCREEN_BUFFER_INFO bInfo; 
    GetConsoleScreenBufferInfo(hOut, &bInfo );  
    SetConsoleTitle("读心术"); 
}
int main(){
    cout<<"\n\t欢迎来到读心术!";
    Sleep(3000);
    system("cls");
    cout<<"\n\t我是忧忧";
    Sleep(3000);
    system("cls");
    cout<<"\n\t感谢你的游玩";
    Sleep(3000);
    system("cls");
    int cnt=0;
    cout<<"\n\t在下面7个数中选1个,记住";
    cout<<"\n\t1 2 3 4 5 6 7";
    Sleep(6000);
    system("cls");
    cout<<"\n\t下面的数有吗(有:1,无:0)";
    bool a,b,c;
    cout<<"\n\t1 3 5 7";
    cin>>a;
    cout<<"\n\t下面的数有吗";
    cout<<"\n\t2 3 6 7";
    cin>>b;
    cout<<"\n\t下面的数有吗";
    cout<<"\n\t4 5 6 7";
    cin>>c;
    Sleep(1000);
    system("cls");
    cout<<"\n\t你想的数是:"<<4*c+2*b+a;
    cout<<"\n\t感谢支持!!!"; 
    return 0;
}

吴绍东在2021-08-18 10:08:21追加了内容

#include<iostream>
#include<fstream> 
#include<windows.h>
#include<cstdio>
#include<cstring>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<vector> 
#include<sstream>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //头文件是借用XACRAFT的 
using namespace std;
void console(){
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);  
    CONSOLE_SCREEN_BUFFER_INFO bInfo; 
    GetConsoleScreenBufferInfo(hOut, &bInfo );  
    SetConsoleTitle("读心术"); 
}
int main(){
    cout<<"\n\t欢迎来到读心术!";
    Sleep(3000);
    system("cls");
    cout<<"\n\t我是忧忧";
    Sleep(3000);
    system("cls");
    cout<<"\n\t感谢你的游玩";
    Sleep(3000);
    system("cls");
    int cnt=0;
    cout<<"\n\t在下面7个数中选1个,记住";
    cout<<"\n\t1 2 3 4 5 6 7";
    Sleep(6000);
    system("cls");
    cout<<"\n\t下面的数有吗(有:1,无:0)";
    bool a,b,c;
    cout<<"\n\t1 3 5 7";
    cin>>a;
    cout<<"\n\t下面的数有吗";
    cout<<"\n\t2 3 6 7";
    cin>>b;
    cout<<"\n\t下面的数有吗";
    cout<<"\n\t4 5 6 7";
    cin>>c;
    cout<<"\n\t你想的数是:"<<4*c+2*b+a;
    cout<<"\n\t感谢支持!!!"; 
    return 0;
}


1
1
1
曹灿阳
曹灿阳
初级天翼
初级天翼

萌新:哇!好厉害!这是什么**作!?

大佬:切!这种**作,最多骗骗萌新;这种**作,不值一提啦!

 

原理:(二进制下的一个数可以用xxxB表示(xxx表示数位))

1=001B

2=010B

3=011B

4=100B

5=101B

6=110B

7=111B

 

1 3 5 7在二进制下,最低位相同,放在第一张卡片,如果你选的数是1 3 5 7中的一个,则最低位为1;反之则为0

2 3 6 7在二进制下,第二位相同,放在第二张卡片,如果你选的数是2 3 6 7中的一个,则第二位为1;反之则为0

4 5 6 7在二进制下,第三位相同,放在第三张卡片,如果你选的数是4 5 6 7中的一个,则第三位为1;反之则为0

根据以上判断,能确定1~7内唯一一个数

曹灿阳在2021-08-20 10:40:15追加了内容

我建议你把数搞多一点,然后用代码生成

曹灿阳在2021-08-20 10:40:28追加了内容

用代码生成卡片

0
0
0
0
姜宇轩
姜宇轩
中级天翼
中级天翼

可以把数搞多一点啊,有点少,但不知道的话肯定会一脸懵

0
0
0
阿巴
阿巴
资深守护
资深守护

你用了2的次方的规律吧

第一组数有2^0次方

第二组数有2^1次方

第三组数有2^2次方

0
0
我要回答