📄 未命名6.cpp
字号:
#include <iostream.h>
#include <string.h>
#define max 100
int q[max];
int countq;
int f;
int gcd(int a, int b)
{
if(b==0)
return a;
else
{
int r;
r=a%b;
a=b;
b=r;
return gcd(a,b);
}
}
void B(int c[],int n)
{
int i;
cout<<"************"<<endl<<"??q[]:";
for(i=2;i<=n;i++)
{
c[i]=(-1)*c[i-1]*q[i-2]+c[i-2];
cout<<q[i-2]<<' ';
}
cout<<endl<<"??b[]:";
for(i=0;i<=n;i++)
{
cout<<c[i]<<' ';
if(i==n)
{
if(c[i]<0)
{
c[i]=c[i]+f;
}
cout<<endl;
cout<<"???:"<<c[i];
cout<<endl;
goto l;
}
}
l:;
}
void Euclid(int a,int d)
{
int i;
i=gcd(d,a);
if(i!=1)
{
cout<<a<<"??"<<f<<"???"<<endl;
}
else
{
int c[max];
int countc=0;
countq=0;
while(c[countc-1]!=1)
{
if(countq==0)
{
q[countq]=d/a;
c[countc]=d%a;
countq++;
countc++;
}
else
if(countq==1)
{
q[countq]=a/c[countc-1];
c[countc]=a%c[countc-1];
countq++;
countc++;
}
else
{
q[countq]=c[countc-2]/c[countc-1];
c[countc]=c[countc-2]%c[countc-1];
countq++;
countc++;
}
}
int b[max];
b[0]=0;
b[1]=1;
B(b,countq+1);
}
}
int main(int argc, char* argv[])
{
int a;
cout<<"??????:"<<endl;
cin>>a;
cin>>f;
Euclid(a,f);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -