无奖竞猜
  • 板块灌水区
  • 楼主cuitenglong
  • 当前回复20
  • 已保存回复20
  • 发布时间2024/8/11 17:54
  • 上次更新2024/8/11 19:44:32
查看原帖
无奖竞猜
1236032
cuitenglong楼主2024/8/11 17:54
#include<bits/stdc++.h>
using namespace std;
int bs[10]={13,1,2,3,5,4,4,2,2,2},nf=2000,yf=1,rq=1,lny,yfb[12]={31,lny,31,30,31,30,31,31,30,31,30,31},ct=0;
bool pd2(int a){
	if(a/10==0) return false;
	else return true;
}
int pd(int a,int b,int c){
	int ans=0;
	for(int i=1000;i>=1;i/=10) ans+=bs[a/i%10];
	if(pd2(b))for(int i=10;i>=1;i/=10) ans+=bs[b/i%10];
	else ans+=bs[b];
	//////////////////////////////
	if(pd2(c))for(int i=10;i>=1;i/=10) ans+=bs[c/i%10];
	else ans+=bs[c];
	//////////////////////
	return ans;
}
int main(){
	while(nf!=2024||yf!=4||rq!=13){
		if(pd(nf,yf,rq)>50)ct++;
		rq++;
		if(rq==yfb[yf-1]){
			rq=1;
			yf++;
		}
		if(yf==13){
			yf=1;
			nf++;
			if(nf%4==0)lny=29;
			else lny=28;
		}
	}
	cout<<ct;
	return 0;
}

求这个代码的时间复杂度,反正我现在还没运行出答案

2024/8/11 17:54
加载中...