(函数)P1149 火柴棒等式

题解:

 #include<stdio.h>
int a[10]={6,2,5,5,4,5,6,3,7,6};
int num(int n){                          //计算所需火柴棒的个数
 int sum=0;  
 sum+=a[n%10];                     //小心特殊情况——0
 while(n>9){
  n/=10;
  sum+=a[n%10];
 }
 return sum;
}
int main()
{
 int n,i,j,ret=0;
 scanf("%d",&n);
 n-=4;
 for(i=0;i<1000;i++){                                 //循环范围要足够大,不能小于测试数据所包含的范围

  for(j=i;j<1000;j++){                                 //自己写的时候只是循环到100,太小
   if(num(i)+num(j)+num(i+j)==n){
    if(i==j)ret++;
    else ret+=2;
   }
  }
 }
 printf("%d",ret);
 return 0;
}

posted @ 2020-01-28 10:32  BlueValentines  阅读(117)  评论(0)    收藏  举报