离散数学实验5-6
#include <bits/stdc++.h>
using namespace std;
int main()
{
int f[6];
for(int i=1;i<=6;i++)
{
f[i-1]=i;//初始化字符串
}
/*1-f6函数 进行复合运算 比如
f0=x 为1
123456
1 123456
*/
int c[6][6]={
{1,2,3,4,5,6},
{2,1,4,3,6,5},
{3,5,1,6,2,4},
{4,6,2,5,1,3},
{5,3,6,1,4,2},
{6,4,5,2,3,1}
} ;//函数复合运算表
int yaoyuan=0;//yaoyuan幺元 分左右
int flag=0;
for(int i=0;i<6;i++) //找左右单位元
{
flag=1;
for(int j=0;j<6;j++)
{
if(c[i][j]!=f[j])
{
flag=0;
}
}
for(int j=0;j<6;j++)
{
if(c[j][i]!=f[j])
{
flag=0;
}
}
if(flag==1)
{
yaoyuan=i;
break;
}
}
//已找到yaoyuan
//cout<<yaoyuan<<endl;
char cc,yy;
scanf("%c%c",&yy,&cc);
int d=cc-'0'-1;
for(int i=0;i<6;i++)
{
if(c[d][i]==yaoyuan+1)
{
cout<<"f"<<i+1<<endl;
return 0;
}
}
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
//元素的阶:a^n=e 就是a+a……n次模18加法
//模2加法得到阶
int x;
scanf("%d",&x);
int sum=1;
int y=x;//避免运算时候x的值变动
while(y!=0)
{
y=(y+x)%18;
sum++;
}
cout<<sum<<endl;
}