P1149 火柴棒等式(打表暴力 暴力出奇迹)
2019-03-28 23:02
190 查看
给你n根火柴棍,你可以拼出多少个形如“A+B=CA+B=C”的等式?等式中的AA、BB、CC是用火柴棍拼出的整数(若该数非零,则最高位不能是00)。用火柴棍拼数字0-90−9的拼法如图所示:
注意:
1加号与等号各自需要两根火柴棍
2如果A≠BA≠B,则A+B=CA+B=C与B+A=CB+A=C视为不同的等式(A,B,C>=0A,B,C>=0)
3nn根火柴棍必须全部用上
输入输出格式
输入格式:
一个整数n(n<=24)n(n<=24)。
输出格式:
一个整数,能拼成的不同等式的数目。
输入输出样例
输入样例#1: 14 输出样例#1: 2 输入样例#2: 18 输出样例#2: 9
本题思路 就是把2000以内的数全部所需要的火柴数目求出来 存到一个数组里面 在这里可以用一个for循环加上 while 可以实现 首先初始化 10以内的所有数拥有的火柴数分别存在a[i]中
ac代码
#include<iostream> using namespace std; int a[2000]; int main(){ int num=0; int vis[10]={6,2,5,5,4,5,6,3,7,6}; for(int i=1;i<2000;i++){ int j=i; while(j){ a[i]=a[i]+vis[j%10]; j/=10; } } a[0]=6; int n; cin>>n; n=n-4; for(int i=0;i<1000;i++) { for(int k=0;k<1000;k++){//这里注意要写1000 因为下面a[i+k] 否则会数组越界 if(a[i]+a[k]+a[i+k]==n){ // cout<<i<<" "<<k<<endl; num++; } } } cout<<num; return 0; }
相关文章推荐
- P1149 火柴棒等式(#1 - 6)
- 洛谷—题解 P1149 【火柴棒等式】
- P1149 火柴棒等式
- noip2008 火柴棒等式 (暴力枚举)
- P1149 火柴棒等式
- P1149 火柴棒等式
- 洛谷-OJ-P1149 火柴棒等式(学习笔记)
- P1149 火柴棒等式
- 【C++心路历程11】1182火柴棒等式,打表!
- 【搜索】洛谷 P1149 火柴棒等式
- 火柴等式 预处理 + 暴力
- 洛谷 P1149 火柴棒等式
- 【C++心路历程11】火柴棒等式1182,打表!
- 洛谷 P1149 火柴棒等式2008 NOIp提高组
- [NOIP2008] 提高组 洛谷P1149 火柴棒等式
- 洛谷 P1149 火柴棒等式(模拟)
- P1149 火柴棒等式
- <NOIP> 24 . P1149 火柴棒等式
- P1149 火柴棒等式
- 哈理工OJ 1118 火柴棒等式(暴力枚举火柴棒等式 )