没看明白,输入的两个数各自是啥意思?
假设今天是星期日,这是确定的?还是输入的?
输入两个整数a,b,ab分别表示什么,过去的天数?今天星期几?
估计是答案溢出了,a^b 过大存不了。
#include <bits/stdc++.h>
using namespace std;
long long a, b, c, d;
int main() {
cin >> a >> b;
c = d = a;
for (int i = 1; i < b; i++) {
d = a;
d *= c;
c = d % 7;//取余
}
if (c == 1)
{
cout << "Monday";
}
if (c == 2)
{
cout << "Tuesday";
}
if (c == 3)
{
cout << "Wednesday";
}
if (c == 4)
{
cout << "Thursday";
}
if (c == 5)
{
cout << "Friday";
}
if (c == 6)
{
cout << "Saturday";
}
if (c == 0)
{
cout << "Sunday";
}
return 0;
}
信息学奥赛一本通1083正确代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,i,f=1;
cin>>a>>b;
for(i=1;i<=b;i++)
{
f=f*a;
f=f%7;
}
switch(f)
{
case 1:cout<<"Monday";break;
case 2:cout<<"Tuesday";break;
case 3:cout<<"Wednesday";break;
case 4:cout<<"Thursday";break;
case 5:cout<<"Friday";break;
case 6:cout<<"Saturday";break;
case 0:cout<<"Sunday";break;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,g,i;
cin>>a>>b;
g=a;
for(i=2;i<=b;i++)
{
a*=g;
a%=7;
}
switch(a)
{
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 0:
printf("Sunday");
break;
}
return 0;
}
我不会!!!!!!!!!