B.Tachibana Kanade Loves Probability【简单模拟题】【牛客】【牛客练习赛43】

题意:

题目等价于求分数 的小数点后第k1 到 k2位的所有数字

直接暴力模拟除法过程是肯定会 T 的,但是我们发现我们不用从头开始模拟,只需要从 第k1位开始模拟就可以了。

直接通过快速幂+取模算出第k1 位的数字。然后我们发现 ,所以暴力枚举除法过程就可以。

ans<<3 + ans<<1 == ans * 10

AC_code:

#include<bits/stdc++.h>
using namespace std;
int main() {
	int T;
	scanf("%d", &T);
	while(T--) {
		int m, n, k1, k2;
		scanf("%d%d%d%d", &m, &n, &k1, &k2);
		int a = 10, b = k1-1;
		long long ans = m;
		while(b) {
			if(b&1) ans = ans * a % n;
			a = (long long) a * a % n;
			b >>= 1;
		}
		for(int i = k1; i <= k2; i++) {
			ans = (ans<<3) + (ans<<1);
			int t = ans / n;
			ans = ans % n;
			putchar(t + '0');
		}
		putchar('\n');

	}
	return 0;
}

 

全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务