2017年4月18日今日头条笔试原题C题
来源:互联网 发布:python labeled lda 编辑:程序博客网 时间:2024/05/29 02:32
题目:
我的代码(测试用例80%通过):
#include <iostream>#include<string.h>using namespace std;char ans[5][100], char0 = '0';const char cs[17] = "1234567890+-*/.=";const char s[5][100] = {"* *** *** * * *** *** *** *** *** *** ","* * * * * * * * * * * * * * * * * * **** ","* *** *** *** *** *** * *** *** * * *** *** * * ","* * * * * * * * * * * * * * * * * ** **** ","* *** *** * *** *** * *** *** *** ** "};void add(char c){int k = -1, num = 5;for (int i = 0; i < 16; i++)if (cs[i] == c)k = i;if (k == -1)return;if (k == 15)num = 6;if (k == 0)num = 3;if (k == 14)num = 4;for (int i = 0; i < 5; i++)strncat(ans[i], s[i] + k * 5, num);}void add(int n){if (n >= 10){add(n / 10);add(n % 10);return;}add(char(char0 + n));}void add(double x){int n = int(x);double eps = 0.0000001, r = x - n;if (n - x < eps && x - n < eps)r = 0;add(n);if (r == 0)return;add('.');n = int(r * 100);if (n % 10 == 0)n /= 10;add(n);}int main(){for (int i = 0; i < 5; i++)ans[i][0] = '\0';int a, b, r1;double r2 = -1;char ch = ' ';scanf("%d %c %d", &a, &ch, &b);add(a);add(ch);add(b);add('=');if (ch == '+')r1 = a + b;if (ch == '-')r1 = a - b;if (ch == '*')r1 = a*b;if (ch == '/')r2 = a*1.0 / b;if (r2 == -1)add(r1);else add(r2);for (int i = 0; i < 5; i++)cout << ans[i] << endl;return 0;}
这个代码我觉得写得还是不错的,就是不知道为什么只通过了80%,应该是void add(double x)函数里面有问题,小数部分处理的还不到位。
首先,把所有字符存到cs里面,把对应的形式化符号全部存到s里面,编程起来方便很多。
其次,对add重载了3次,而且互相调用,也使得编程简单了很多。
0 0
- 2017年4月18日今日头条笔试原题C题
- 2017年4月18日今日头条笔试原题A题
- 2017年4月18日今日头条笔试原题B题
- 2017年4月18日今日头条笔试原题D题
- 今日头条笔试题
- 今日头条,笔试题
- 今日头条笔试题
- 今日头条笔试题
- 今日头条笔试题
- 今日头条笔试题
- 今日头条2017年实习生在线笔试题1
- 今日头条 笔试题 (位运算)
- 牛客《今日头条》笔试题
- 2016今日头条后端笔试题
- 今日头条笔试题 数列
- 今日头条的一条笔试题
- 今日头条笔试编程题
- 2017.08.22 今日头条笔试题
- 画图板的课后感想
- 机器学习定义
- vs2013下的python远程调试支持
- getElementsByClassName这个坑
- 分类游戏
- 2017年4月18日今日头条笔试原题C题
- HDU 2089 不要62 (数位DP)
- pytorch 学习笔记之自定义 Module
- IMWeb小白训练营DAY4任务
- 【转】Linux TC(Traffic Control)框架原理解析
- c语言函数指针和应用
- Numpy学习笔记之随机数生成
- 链式结构的线性表--单链表
- 2017.4.16 形参,返回值,内部类