📄 main.cpp
字号:
#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;
#include "poly.h"
int main(int argc, char *argv[]) {
//Poly::listPrimitive(4);
Poly::size_t m;
while (1) {
cout<<"打印本原多项式列表,最高次为(输入 0 跳过):";
cin>>m;
if (m != 0) {
Poly::listPrimitive(m);
} else {
break;
}
}
//Poly x1("1111"), x2("111000011");
//cout<<x1<<" + "<<x2<<" = "<<x1+x2<<endl;
//cout<<x1<<" * "<<x2<<" = "<<x1*x2<<endl;
//cout<<x1<<" / "<<x2<<" = "<<x1/x2<<" ... "<<x1%x2<<endl;
//cout<<x1<<" = "<<x2*(x1/x2)+x1%x2<<endl;
//cout<<x2<<" is "<<(x2.isPrimitive() ? "" : "not ")<<"primitive."<<endl;
//Poly x3 = x1.inverse(x2);
//if (!x3.isZero()) {
// cout<<"inverse("<<x1<<") = "<<x3<<endl;
// cout<<"because:"<<endl;
// cout<<"\t"<<x1<<" * "<<x3<<" = "<<x1*x3/x2<<" * "<<x2<<" + "<<x1*x3%x2<<endl;
// cout<<"\t"<<x1*x3<<" = "<<x1*x3/x2*x2<<" + "<<x1*x3%x2<<endl;
//}
Poly f, f_i, p;
while (1) {
cout<<"请输入二进制格式的待测试的多项式(如11001,输入 0 退出):";
cin>>p;
if (p.isZero()) {
cout<<"再见!"<<endl;
return 0;
}
if (p.isPrimitive()) {
cout<<p<<" 是本原多项式"<<endl;
break;
} else {
cout<<p<<" 不是本原多项式"<<endl;
}
}
while (1) {
cout<<"请输入二进制格式的待求逆的多项式(如11001,输入 0 退出):";
cin>>f;
if (f.isZero()) {
cout<<"再见!"<<endl;
break;
}
f_i = f.inverse(p);
if (!f_i.isZero()) {
cout<<f<<" 的逆为 "<<f_i<<endl;
cout<<"因为:"<<endl;
cout<<f<<" * "<<f_i<<" = "<<(f*f_i/p)<<" * "<<p<<" + "<<(f*f_i%p)<<endl;
cout<<(f*f_i)<<" = "<<(f*f_i/p * p)<<" + "<<(f*f_i%p)<<endl;
}
}
//system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -