这道题我试了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;
}
这到底是为啥呀?各位大佬,帮帮我吧……我会谢谢您的!