var n,i,j,ans:longint; a:array[0..9]of longint=(6,2,5,5,4,5,6,3,7,6);function rem(n:longint):longint;var ls,i,c:longint; s:string;begin rem:=0;//一定要清零 str(n,s); ls:=length(s); for i:=1 to ls do begin c:=ord(s[i])-48;//分出每一位 rem:=a[c]+rem;//把每一位的火柴棒个数汇总 end;end;begin read(n); for i:=0 to 1000 do//之所以是一千,可以算。24减去符号剩下20.火柴棒用得最少是2根,A+B=C中只有A.B.C是数字,所以20要除于3,得3,因为有余数,所以加一位,就是4位,一千。本题数据小,不然不可以一个一个枚举。 for j:=0 to 1000 do//同上 if rem(i)+rem(j)+rem(i+j)=n-4 then inc(ans); write(ans); end.