题解报告:hdu 1229 还是A+B
2024-09-05 07:42:33
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1229
Problem Description
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即A+B的值或者是-1。
Sample Input
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
Sample Output
3
-1
-1
100
解题思路:这道题的意思就是给你两个数以及K个位数,让你从右往左依次比较,如果K是小于这两个数中最大位数的,依次比较相同则输出-1,不同就计算两个数的和,如果K大于给定有效(最大)位数,则按实际的位数来比较,规则相同,简单AC。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{ int A,B,K,m,n,h,g,y;
while(cin>>A>>B>>K&&(A+B)){
m=A,n=B,y=K,h=,g=;//分别记录输入的三个值,g是来记录两个数中位数最多的一个
while((y--)&&(n||m)){//判断K的同时判断是否超过位数,都为0就没必要再除下去了
if((m%)==(n%))++h;//看尾数相同的加1
m/=,n/=;//除去尾数
if(m||n)++g;//判断两个数的最大位数,
}
if(K>g)K=g;//保持比较的是有效位数,超过最大位数按实际有效数字来比较
if(h==K)cout<<"-1"<<endl;
else cout<<(A+B)<<endl;
}
return ;
}
最新文章
- [源码]Literacy 快速反射读写对象属性,字段
- iOS 删除、重新排序xcdatamodel
- light oj 1236 分解质因数
- python 学习笔记八 进程和线程 (进阶篇)
- python一套完整的事务操作
- jQ的自定义插件
- 初试weka数据挖掘
- 数据库设计的误区—>;CHAR与VARCHAR
- (MariaDB/MySQL)之DML(2):数据更新、删除
- 移动端h5实现复制功能
- Java 8 Documentation Download
- Go 编译原理实现计算器(测试驱动讲解)
- 使用Zabbix监控mysql的主从同步
- Spring Security(三十六):12. Spring MVC Test Integration
- rsync+inotify实现全网自动化数据备份-技术流ken
- Is there a TRY CATCH command in Bash
- vue axios 发送post请求,后端接收参数为null
- access-control-allow-origin
- 关于hibernate中的session与数据库连接关系以及getCurrentSession 与 openSession() 的区别
- php 四种基础排序
热门文章
- Centos5设置静态IP地址
- 《从0到1》读书笔记第一章&;quot;未来的挑战&;quot;第1记:把握潮流风向
- kill mediaserver脚本
- Selenium系列之--01 简介【转】
- MySQL运行计划不准确 -概述
- 高清接口芯片---gv7600、sii9135
- (21) java web的struts2框架的使用
- mysql 系统函数
- 织梦发布的文章如何批量替换文章";来源";和";作者";?
- 原生js写简单轮播图方式1-从左向右滑动