题目链接:http://acdream.info/contest?cid=1269#problem-C

Problem Description

小晴天是ACdream团队中最牛的老师之一,他最擅长数学运算~这天他翻开一本《AC is not a dream》杂志,发现最后一页有一道很经典的思维题,题目很简单,每个框填写一个数字,构成一个竖式,每个数的最高位不能为0,但是有一些数字被隐藏掉了,然后让你根据没有隐藏的数字填出隐藏的数字。

如下图:

然后小晴天二话不说,三下五除二就写出了答案:

然后小晴天就觉得这样的题目太简单了,于是问你是否有办法来求出一道题目有多少种不同的答案呢?(只要有一个方框有不同的数字即为不同的答案)

Input

多组数据,首先是一个整数t(t<=20),表示数据组数。

对于每组数据,用5行表示一个竖式,每行均为一个字符串,仅含有星号(*)与数字('0'~'9')组成,其中星号表示空白

其中第一行为长度为3的字符串。

第二行为长度为2的字符串。

第三行为长度为4的字符串。

第四行为长度为3的字符串。

第五行为长度为5的字符串。

Output

对于每组数据,输出一个整数x,表示符合乘法竖式法则的填法的种类。

Sample Input

2
***
**
3384
846
*****
4**
**
3384
846
*****

Sample Output

2
1 解题思路:
题上就是实现一个三位数乘以一个两位数的过程,而且该三位数乘以十位数的各位等于四位数,乘以十位等于三位数,最后得到的是五位数,但是有一些限制条件,就是在这五行中有的位置上的数字已经给出来了,让你找符合的条件的个数;
我的做法就是,用两个for循环一个是三位数,以为是两位数,在用一个判断函数,看看这三位数跟两位数是不是符合题上给的条件,如果符合就继续,把该三位数乘以两位数个位数看是否满足四位数且满足题上给的四位数条件,还有该三位数乘以两位数的十位是否是三位数且也满足题目上给的条件,这些都满足后,在把得到的计算后的四位数加上三位数*10(注:因为是乘法运算右移了一位)看是否满足五位数且也符合题上该行的条件,如果这也满足就是其中符合条件的一个了。
AC代码:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
char a[][];
int judge1(int x)
{
int a1,b,c,d,e,f;
if(x>=&&x<)
{
a1=x/;b=x%;
if(a[][]!='*'&&a[][]-''!=a1) return ;
if(a[][]!='*'&&a[][]-''!=b) return ;
}
else if(x>=&&x<)
{
a1=x/;b=(x%)/;c=x%;
if(a[][]!='*'&&a[][]-''!=a1) return ;
if(a[][]!='*'&&a[][]-''!=b) return ;
if(a[][]!='*'&&a[][]-''!=c) return ;
}
else if(x>=&&x<)
{
a1=x/;b=(x%)/;c=(x%)/;d=x%;
if(a[][]!='*'&&a[][]-''!=a1) return ;
if(a[][]!='*'&&a[][]-''!=b) return ;
if(a[][]!='*'&&a[][]-''!=c) return ;
if(a[][]!='*'&&a[][]-''!=d) return ;
}
else if(x>=)
{
a1=x/;b=(x%)/;c=(x%)/;d=(x%)/;e=x%;
if(a[][]!='*'&&a[][]-''!=a1) return ;
if(a[][]!='*'&&a[][]-''!=b) return ;
if(a[][]!='*'&&a[][]-''!=c) return ;
if(a[][]!='*'&&a[][]-''!=d) return ;
if(a[][]!='*'&&a[][]-''!=e) return ;
}
return ;
}
int judge2(int x)
{
int a1,b,c,d;
a1=x/;b=(x%)/;c=x%;
if(a[][]!='*'&&a[][]-''!=a1) return ;
if(a[][]!='*'&&a[][]-''!=b) return ;
if(a[][]!='*'&&a[][]-''!=c) return ;
return ;
}
int main()
{
int i,j,k,tcase,sum;
scanf("%d",&tcase);
while(tcase--)
{
sum=;
int m,n;
for(i=; i<; i++) scanf("%s",a[i]);
for(i=; i<=; i++)
{
for(j=; j<=; j++)
{
m=((j%)*i);n=((j/)*i);
if(judge1(i)&&judge1(j)&&m<&&m>=&&n<&&n>=)
{
if(judge1(m)&&judge2(n))
{
if(m+n*>=&&judge1(m+n*)) sum++;
}
}
}
}
printf("%d\n",sum);
}
return ;
}

[ACdream]小晴天老师系列——竖式乘的更多相关文章

  1. acdream 小晴天老师系列——竖式乘法(简单穷举)

    小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)   ...

  2. C -小晴天老师系列——竖式乘法

    C - 小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others ...

  3. acdream 小晴天老师系列——苹果大丰收(DP)

    小晴天老师系列——苹果大丰收 Problem Description 小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的. 为了保存苹果,小晴天买 ...

  4. acdream 小晴天老师系列——晴天的后花园 (暴力+剪枝)

    小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) ...

  5. acdream 小晴天老师系列——我有一个数列! (ST算法)

    小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)S ...

  6. G - 小晴天老师系列——可恶的墨水瓶

    G - 小晴天老师系列——可恶的墨水瓶 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Othe ...

  7. E - 小晴天老师系列——我有一个数列!

    E - 小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/O ...

  8. D - 小晴天老师系列——晴天的后花园

    D - 小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Oth ...

  9. F - 小晴天老师系列——苹果大丰收

    F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Other ...

随机推荐

  1. 201521123087《java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 答: 往返行 ...

  2. 201521123090《Java程序设计》第10周学习总结

    本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 书面作业 本次PTA作业题集异常.多线程 finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  3. 【翻译】基于web创建逼真的3D图形 | CSS技巧

    个人翻译小站:http://www.zcfy.cc/article/creating-photorealistic-3d-graphics-on-the-web-css-tricks-4039.htm ...

  4. 商城项目整理(四)JDBC+富文本编辑器实现商品增加,样式设置,和修改

    UEditor富文本编辑器:http://ueditor.baidu.com/website/ 相应页面展示: 商品添加: 商品修改: 前台商品展示: 商品表建表语句: create table TE ...

  5. 实际用户ID,有效用户ID及设置用户ID

    实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解.今天好好区分了一下这几个概念并总结如下.说白了这几个U ...

  6. gephi安装后无法打开

    具体解决的方法是找到gephi.conf文件(在“gephi安装目录\etc”中)文件,添加下面的一行,指定jdkhome的路径. jdkhome="C:\Program Files (x8 ...

  7. [UIKit学习]04.关于HUD提示框,定时任务、开发关于资源常见问题

    提示框的背景透明此时要设置background的Alpha值 定时任务 方法1:performSelector // 1.5s后自动调用self的hideHUD方法 [self performSele ...

  8. 【京东账户】——Mysql/PHP/Ajax爬坑之购物车列表显示

    一.引言 做京东账户项目中的购物车模块,功能之二是购物车列表显示.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.小功能-点击“去购物车结算” 小坑:Ajax动态生成的不能直接绑定,因 ...

  9. Struts2的核心运行流程,原理图解

    感觉很有必要制定一个计划,这样盲目的想到哪里写到哪里,不符合我大程序员的思维逻辑呀~~~嗯...那就从基本的开始吧,循循渐进,今天想到的先写上,不能浪费了,哈哈哈................... ...

  10. Vue 开发常见问题集锦

    涉及技术栈 CLI: Vue-CLI UI: Element HTML: Pug(Jade) CSS: Less JavaScript: ES6 正文: polyfill 与 transform-ru ...