序号:1354
Time Limit:10s Memory Limit:512MB
题目描述:
今天是星期六,有个预言家(神棍)说n天以后外星人即将到访地球。科学家想知道n天以后是星期几,但是这个n有500位,请写程序帮科学家计算一下。
输入格式:
一个数 n (len =500)
输出格式:
输出星期几(星期一,星期二,星期三,星期四,星期五,星期六,星期日)
输入样例:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
输出样例:
星期二
#include<bits/stdc++.h>
using namespace std;
string week[8]={"日","一","二","三","四","五","六"};
int ans[6144];
int div(int a[],int x){
memset(ans,0,sizeof(ans));
ans[0]=a[0];
int res=0;
for(int i=a[0];i>=1;i--){
res=res*10+a[i];
ans[i]=res/x;
res=res%x;
}
while(ans[0]>1 and ans[ans[0]]==0){
ans[0]--;
}
return res;
}
int main(){
string s;
cin>>s;
int a[608]={};
a[0]=s.size();
for(int i=1;i<=a[0];i++){
a[i]=s[a[0]-i]-'0';
}
int day=div(a,7);
cout<<"星期"<<week[(day+6)%7];
}