📄 main.cpp
字号:
#include <iostream>
#include "List.h"
using namespace std;
const int max=53;
int card[max];
void start(int n);
void pass(int n);
void showAll();
void showBase();
List<int> baseface[max]; //全局变量,记录基数的正面链表
List<int> basecon[max]; //全局变量,记录基数的反面链表
int main()
{
int i;
for(i=0; i<max; i++)
card[i]=1; //1表示牌子的正面
for(i=2; i<max; i++)
start(i);
char choose;
while(true) {
do {
cout<<"1.输入基数进行查找"<<endl;
cout<<"2.显示最后结果"<<endl;
cin>>choose;
}while(choose<'1'||choose>'2');
switch(choose) {
case '1': showBase();break;
case '2': showAll(); break;
}
}
return 0;
}
void start(int n) {
for(int i=n;i<max;i++) {
if(i%n==0)
card[i]=!card[i];
}
pass(n);
}
void pass(int n) {
List<int>face;
List<int>con;
for(int i=1;i<max;i++) {
if(card[i]) {
face.insert(0,i);
}
}
for(i=1;i<max;i++) {
if(!card[i]) {
con.insert(0,i);
}
}
baseface[n]=face;
basecon[n]=con;
}
void showAll() {
cout<<endl<<"最后的正面向上的为;";
for(int i=1; i<max; i++) {
if(card[i])
cout<<i<<" ";
}
cout<<endl;
}
void showBase() {
int base=0;
int i=0,temp;
int count=0;
List<int>templist;
do {
cout<<"请输入基数(2-52):";
cin>>base;
}while(base<2||base>52);
cout<<endl<<"以"<<base<<"为基数时:"<<endl;
cout<<"正面向上的为:";
templist=baseface[base];
for(i=templist.size()-1;i>=0;i--) {
templist.retrieve(i,temp);
count++;
cout<<temp<<" ";
if(count%20==0) cout<<endl;
}
count=0;
cout<<endl<<"反面向上的为:";
templist=basecon[base];
for(i=templist.size()-1;i>=0;i--) {
templist.retrieve(i, temp);
count++;
cout<<temp<<" ";
if(count%20==0) cout<<endl;
}
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -