50分/80分求助!
查看原帖
50分/80分求助!
977599
Wrong_Accept楼主2023/12/4 18:08

这道题我试了2种方法:
第一种(80分):

#include<stdio.h>
using namespace std;
int n,a,b;
int main(){
	scanf("%d",&n);
	if(n<11){
		printf("%d",n%5+n/5);
		return 0;
	}b=n/11+n%11/5+n%11%5;
	while(n%11&&n>=5){
		n-=5;
		a++;
	}if(n>0) a+=n;
	else a+=n/11;
	if(a<=b) printf("%d",a);
	else printf("%d",b);
    return 0;
}

第二种(50分):

#include<stdio.h>
using namespace std;
int n,a[1000001]={0,1,2,3,4,1,2,3,4,5,2};
int main(){
	scanf("%d",&n);
	for(int i=11;i<=n;i++){
		if(a[i-11]<a[i-5]&&a[i-11]<a[i-1]) a[i]=a[i-11]+1;
		else if(a[i-5]<a[i-11]&&a[i-5]<a[i-1]) a[i]=a[i-5]+1;
		else a[i]=a[i-1]+1;
	}printf("%d",a[n]);
    return 0;
}

这到底是为啥呀?各位大佬,帮帮我吧……我会谢谢您的!

2023/12/4 18:08
加载中...