题解

hyuxi  •  1个月前


暴力模拟(a=b=10超时,但是本题a,b都小于10^_^)

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'

int main(){
	int a,b;
	cin >> a >> b;
	long long n = pow(a,b);
	//cout << n << endl;
	int w = 7;
	for(long long i = 1; i <= n; i++){
		w++;
		if(w > 7) w = 1;
	}
	cout << w << endl;
	return 0;
}

数学取余

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'

int main(){
	int a,b;
	cin >> a >> b;
	int r = (long long)pow(a,b) % 7;
	int w = (r + 7) % 7; // w 0 1 2 3 4 5 6, 第一天是星期天
	int ans = w ? w : 7;
	cout << ans <<endl;
	return 0;
}

推荐

#include<bits/stdc++.h>
using namespace std;
#define endl '\n'

int main(){
	int a,b;
	cin >> a >> b;
	int r = (long long)pow(a,b) % 7;
	int w = (r + 7 - 1) % 7 + 1;  // 第一天是星期天,每周分别是1,2,3,4,5,6,7循环
	cout << w <<endl;
	return 0;
}

评论: