代码:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int n;
int main(){
ios::sync_with_stdio(false);
int f[10],dp[100];
f[1]=2;f[2]=5;f[3]=5;f[4]=4;f[5]=5;f[6]=6;f[7]=3;f[8]=7;f[9]=6;f[0]=6;
cin>>n;
if(n==6){
cout<<0<<" ";
goto next;
}
dp[2]=1;dp[3]=7;dp[4]=4;dp[5]=2;dp[6]=6;dp[7]=8;
for(int i=8;i<=n;i++){
dp[i]=dp[i-f[0]]*10;
for(int j=0;j<=9;j++)
if(dp[i-f[j]]!=0)
dp[i]=min(dp[i],dp[i-f[j]]*10+j);
}
cout<<dp[n]<<" ";
next:
if(n&1){
cout<<"7";
n-=3;
for(int i=1;i<=(n>>1);i++)
cout<<"1";
}
cout<<endl;
return 0;
}
编译选项:-std=c++11 -O2 -DONLINE_JUDGE -Wall
输入 15,每次运行的结果不一样。求大佬解答。