题目描述
no
样例
i:14
o:2
算法1
(暴力枚举) $O(n^2)$
暴力枚举,
函数求位数
代码:
int weishu(int n){
int b=n;
int yu=0;
int num=0;
if(n==0)return 6;
while(b>0){
yu=b%10;
num+=a[yu];
b/=10;
}
return num;
}
注意:n==0时用六根火柴棒
时间复杂度分析:1000000
C++ 代码
include[HTML_REMOVED]
/
Name: hicode002
Copyright: wsb hicode002
Author: 1
Date: 16/08/19 11:00
Description: 1
/
using namespace std;
int a[10]={6,2,5,5,4,5,6,3,7,6};
int weishu(int n){
int b=n;
int yu=0;
int num=0;
if(n==0)return 6;
while(b>0){
yu=b%10;
num+=a[yu];
b/=10;
}
return num;
}
int main(){
int n;
cin>>n;
int yu=0,sum=0,w,n1=n-4,t=0;
for(int i=0;i<=1000;i++){
w=weishu(i);
//n1=n-4错误
for(int j=0;j<=1000;j++){
n1=n-4;//放在这里n1=n-4
n1=n1-weishu(j)-weishu(i+j)-w;
// Sleep(200);
if(n1==0){
t++;
}
}
}
cout<<t<<endl;
return 0;
}