短学期 整数与除数

https://www.luogu.com.cn/problem/P1082(扩展欧几里得算法)
在这里插入图片描述
在这里插入图片描述

// c++
int ex_gcd(int a, int b, int &x, int &y) {
    if(b == 0) { 
        x = 1;
        y = 0;
        return a;
    }
    int r = ex_gcd(b, a % b, x, y);
    int t = y;
    y = x - (a / b) * y;
    x = t;
    return r;
}

此题AC代码:

#include<iostream>
using namespace std;
long long x, y;//目前方程真正的解 
void exgcd(long long a, long long b)
{
	//当前目的:求解 ax + by = gcd(a, b) 这么一个方程
	if (b == 0) //a, b不断改变的过程中,b最终必然会成为0
	{
		//在 b = 0 时方程还要成立? 使 x = 1, y = 0 ,必然成立 
		x = 1;
		y = 7; //建议返回0。不过y = 7能AC,证明了最后一个等式不受最后一个y影响
		return;
	}
	exgcd(b, a % b);//把下一层系数传进去(先求下一个方程的解 )
	//现在我们已经拿到了下一个方程的解x, y
	long long tx = x;//暂时存一下x,别丢了
	x = y;
	y = tx - a / b * y;
}

错排:
在这里插入图片描述
代码:

#include<iostream>
using namespace std;
typedef long long ll;
#define Maxx 1000009 
ll f[10000];
int main() {
	f[1] = 0, f[2] = 1;
	int i;
	for (i = 3; i < 10; i++) {
		f[i] = (i - 1)*(f[i - 1] + f[i - 2]);
	}
	ios_base::sync_with_stdio(false);
	for (i = 1; i < 10; i++) {
		cout << f[i] << "  ";
		if (i % 10 == 0) {
			cout << endl;
		}
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值