【B1086】 字符串 数字逆置 判非0位
2020-03-28 20:02
43 查看
题目描述
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。
输入格式:
输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。
输出格式:
在一行中倒着输出 A 和 B 的乘积。
输入样例:
5 7
输出样例:
53
【分析】
主要就是注意当乘积结果末尾是0时 ,输出时要从第一个不为0的数开始输出,例如:100 * 100 = 10000,则应该输出1.
解决此问题我最开始想的
法一 :用定义一个index 先测出第一个不为0的数的位置 再顺序输出后面各位数字即可 但提交显示有两个测试样例未通过。
法二:利用flag标志,当测到不为0时 输出并将flag置为1;
发三:柳神利用的c++ 有关字符串的函数 解决
0.取整数的各位数字
1.将各位数字逆置
3.判非0
还有待学习 的确很方便。
AC代码
#include<cstdio> int main(){ int a[10] = {0}; //初始化为0 int A, B, C; scanf("%d%d", &A, &B); C = A * B; int i = 0; while(C){ a[i++] = C % 10; C = C / 10; } int flag = 0; for(int j = 0; j < i; j++){ if(flag == 0 && a[j] == 0) continue; if(flag == 1 || a[j] != 0){ printf("%d", a[j]); flag = 1; } } return 0; }
法一代码
int index = 0; for(int j; j < i; j++){ if(a[j] != 0){ index = j; break; } } for(int j = index; j < i; j++){ printf("%d", a[j]); }
柳神代码
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { int a, b; scanf("%d %d", &a, &b); string s = to_string(a * b); reverse(s.begin(), s.end()); printf("%d", stoi(s)); return 0; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 【c语言】递归 实现n^k,求非负整数各位数字之和,逆置字符串
- 把一个 int 数字 n 格式化成16进制的字符串(前面补零成0位)
- Jquery easyui "缺少标识符、字符串或数字"
- 标准数字格式字符串
- iOS开发_从一个带有空格和特殊符号的字符串里提取数字即手机号的方法
- C语言将字符串转换成对应的数字(十进制、十六进制)
- 微软面试100题---在字符串中找到连续最长的数字串
- SQL SERVER 2005字符串转换为数字
- 在C#中生成唯一的字符串和数字【GUID】转
- 一个高效判断字符串是否全数字的函数,请大家指正拍砖
- C语言字符串,字符转数字,数字转字符(转)
- 使用Java正则表达式提取字符串中的数字一例
- 字符串转换为数字
- asp.net中利用正则表达式判断一个字符串是否为数字的代码
- C语言实现字符串转数字
- C++/C:数字转成字符串, 字符串转成数字
- 将数字字符串转换为 日期格式问题解答
- strtol,strtoll,strtoul, strtoull字符串转化成数字
- 计算以空格为分隔符的字符串中数字的个数
- js判断字符串是否是数字