2025.10.28__jyu每日一题题解

天使的起誓

思路

这题的数据范围非常大,对于c++来说明显不能直接运算,python一边去
我们要利用到取模对于加减法和乘法具有分配律的性质来做这题。

(a + b) % p = (a % p + b % p) % p
((a + b) * c) % p = ((a * c) % p + (b * c) % p) % p

举例说明:(12) % p = (10 + 2) % p = ((1 % p) * 10) % p + 2 % p;
我们可以发现对于一个数来说,它拆分成一堆数加减乘,只要有在过程中不断取余,是不会影响他最后的结果的。
所以这题的做法就是:一边读一边取模

特判

取模答案为 0 的话,要输出模数。

代码

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,m,k;

void solve(){
	string s;
	cin>>n>>s;

	int ans=0;
	for(int i=0;i<s.size();i++)
		ans=(ans*10+(s[i]-'0'))%n;

	if(ans) cout<<ans<<endl;
	else cout<<n<<endl;
}

int main()
{
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
//    cin>>t;
    while(t--) solve();
    return 0;
}
posted @ 2025-10-30 15:00  _hu  阅读(30)  评论(0)    收藏  举报