poj 3508 Hide That Number(模拟大数减法)

大数算法之大数加减法 大数算法之大数加减法 当我们第一次编程,成功地在黑洞洞的控制台窗口中打印出“Hello World”的字符后,准备编写的第一个有实用性的程序是什么?我想,对于大多数人而言,这一问题的答案会是:四则运算器。C语言本身提供了四则运算的运算符+ - * /。因此写一个简单的加减乘除法程序可谓轻而易举。 Calculate A + B. 还有比这个更简单的C语言题目吗? #includ 阅读详情

题目链接

http://poj.org/problem?id=3508

题意:

给出一个数字,这个数字的前几位被擦去了,求能否得到一个x,让x*10+x等于这个数字原来的样子

题解:

被擦去的几位只可能是1-10这10个数字,用99,999之类的数举个例子就可以了,然后仔细观察这题发现有个规律:
a b c 0
a b c
———- (a>0)
b c c
a d
因此,能求到x的情况下,最后的x首位必然不能为0,其他位如果减去后一位数字后小于0向前一位借1即可

注意点

输出的char数组要在最后一位输入一个“\0”

AC代码

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
#include <cstdio>

using namespace std;

char num[1000010];

int main()
{
    int cnt = 1;
    while(scanf("%s", num))
    {
        //cout << num <<endl;
        int len = strlen(num);
        char ans[1000010];
        //cout << len << endl;
        if(strcmp(num, "0") == 0)break;
        ans[len-1] = num[len-1];
        int sigh = 0;
        int number = num[len-1];
        for(int i = len - 2; i >= 0; i--)
        {
            number = num[i] - number + sigh;
            if(number < 0)
            {
                ans[i] = number + 10 + '0';
                sigh = -1;
            }
            else
            {
                ans[i] = number + '0' ;
                sigh = 0;
            }
            number = ans[i];
        }
        ans[len] = '\0';
        if (ans[0] != '0')
            printf("%d. %s\n",cnt++,ans);
        else
            printf("%d. IMPOSSIBLE\n",cnt++);

    }
    return 0;
}
西工大最新POJ全代码 附所有题目 附有详细代码,并对应原题目。 学长只能帮你到这里了,希望从代码里你能学到些什么而不是一味的复制与粘贴。 立即下载

相关推荐

SSD盘符漂移导致OSD down场景模拟与恢复

运维团队反馈一个问题,现象是:某个OSD对应的cache分区发生了变化,比如原来cache使用的分区是/dev/sde,后来还是这块盘,但分区信息不知何故,变成了/dev/sdf(产品OSD设备并不是根据分区名称来map,而是根据partlabel),最终的现象是这个OSD down了,没法启动.接到这个现象的反馈后,记录一下这个问题在lab的复现方法。

Gavin Blog 942

POJ 3508 Hide That Number

思路:题意是将得到的数从左边开始删去位数,直到与最开始的数位数一样。 1)设原来的数是x,那么x*10 + x = 11x 所以通过枚举1-10来判断这个大数是否可以模开11。注意是枚举1到10,因为有可能出现进位导致的删去了两位。 2)如图 最后只要判断首位能否为0就行了。模拟大数取模#include <iostream> #include <cstdio> #include <stri

普通で歩む 493

电流镜设计实战:从基础到高级技巧(附常见问题解决方案)

本文从工程实战角度,系统讲解了电流镜设计从基础原理到高级技巧的全过程。深入剖析了匹配精度、输出阻抗等核心矛盾,并详细介绍了共源共栅(Cascode)结构如何平衡电压裕度与输出阻抗。文章还重点探讨了工艺偏差、版图应力效应等实战中的“隐形杀手”,并提供了常见问题的解决方案与调试技巧,旨在帮助工程师设计出鲁棒性更强的模拟电路。

blockchain9miner的博客 733

大数运算(3)——大数减法

大数的减法与大数加法的方法有相似之处的,都是模拟人工运算的,从最低位开始运算,一直到最高位。 其方法是: 首先,要判断减数和被减数哪一个位数长,减数位数长是正常减;被减数位数长,则被减数减减数,最后还要加上负号;两数位数长度相等时,最好比较一下哪一个数字大,否则负号处理会很繁琐,用大的减去小的,最后加上负号; 其次,处理每一项时要,如果前一位相减有借位,就先减去上一位的借位,无则不减;再去判

静之吾心的博客 4096

通过 CoovaChilli 和 FreeRADIUS 搭建一个公共 Wi-Fi 的认证系统,实现用户连接到 Wi-Fi 后通过 Captive Portal(强制登录页面)进行认证

要实现固定设备连接的功能,你可以通过MAC 地址认证来限制哪些设备可以通过 FreeRADIUS 进行身份验证和连接。你可以在 FreeRADIUS 的users文件中直接配置允许的设备的 MAC 地址,也可以通过数据库存储和查询设备信息,进一步提高管理效率。通过这些方法,你可以灵活地控制哪些设备能够访问你的 Wi-Fi 网络。

m0_69943017的博客 2650

整合WGCNA、机器学习和孟德尔随机化

(G)通过蛋白质免疫印迹法(Western blot)测定的 UT-B(由 SLC14A1 编码)、ARHGEF38、NEFH、MSMB、KRT23 和 KRT15 在前列腺癌肿瘤组织和癌旁非癌组织中的蛋白质表达水平。本研究利用来自基因表达综合数据库(GEO)的数据集筛选差异表达基因(DEGs),并采用加权基因共表达网络分析(WGCNA),以识别在模块中与前列腺癌高度相关的驱动基因。(F)蓝绿色模块中的模块成员关系(MM)与前列腺癌(PCa)的基因显著性(GS)的散点图。(D)6 个基因之间的相关性分析。

多组・学・多组学 1139

模拟:超大整数加减法

无数次面对这样的问题,两个长度是几千甚至上万的字符串相加或相减,输出结果。这次专门练习写一遍。校赛ACM时候就卡在这种题上了,不然就能AC七道题了!!        1.两个大数相加的函数比相减的简单些,不用考虑结果会不会是负数的问题。接收到两个字符串和一个要存储和的目标字符串,先反转两个字符串,后以较长字符串为目标,挨个加到存储和的字符串。当当前长度小于短串的时候,每一位再加上短串的对应位,当前...

Belous的博客 793

SpringBoot+VUE3实战:如何用WebSocket搞定网页端语音通话(避坑指南)

本文详细介绍了如何使用SpringBoot和VUE3结合WebSocket技术实现网页端语音通话功能。从环境配置、WebSocket服务端实现到前端音频处理,提供了完整的开发指南和避坑建议,帮助开发者快速构建稳定高效的实时语音通信系统。

weixin_29021195的博客 221

POJ 3393 大模拟

定义: Goog month : 该月第一个工作日为星期一的月份 Luckly month: 该月最后一个工作日为星期五的月份 问: 给定一个Gregorian Calendar格里高公历的 时间闭区间(就是包括端点的年月了) 【开始年、月】~【结束年、月】      在这个时间区间内,有多少个Goog month,有多少个Luckly month   文章要点: Gregori...

Ziwen_的博客 392

Concentration Inequality(集中不等式)更新版

欢迎来我博客 https://wyue.name/2020/04/17/1/阅读这一篇博文 转载前请联系我,联系方式请见我博客 https://wyue.name/ Concentration inequality 刻画了一组随机变量的和(或者样本平均数)与其期望值的偏离程度,在算法收敛性分析过程中是非常有用的一类不等式。 这次主要总结一下最近一段时间遇到的集中不等式,不仅是不等式形式,...

Yue的博客 4554

论文阅读—Square Attack: a query-efficient black-box adversarial attack via random search

论文阅读—Square Attack: a query-efficient black-box adversarial attack via random search 发表位置 ECCV 2020 摘要 作者提出了一种基于得分的黑盒Square attack,该模型不依赖于模型的局部梯度信息,因此可以绕过梯度隐藏防御攻击。Square Attack是一种随机搜索方法,它在随机位置选择局部的方形更新,使得每次迭代时扰动近似位于可行集的边界。 背景 当涉及到对安全至关重要的机器学习应用时,对抗性的例子尤其值得

yayayamaomaoya的博客 2494

Hide That Number

点击打开链接   Hide That Number Time Limit: 1000MS    Memory limit: 65536K 题目描述 According to Wikipedia, Cryptography is “the practice and study of hiding information” and this is exactly w

代码改变世界,keep coding。 1043

FPGA实现串口升级及MultiBoot(九)BPI FLASH相关实例演示

与SPI相关知识并没有什么太多区别(别杠硬件或者架构上),相关知识点都在上面指出,大家有什么其他需要注意点,欢迎留言讨论。关于“四样错误”就不演示了,没什么太大区别,下一讲我们开始串口升级。PS:为了扩展ICAPE2原语的使用,在原来的基础上增加了几个常用FPGA ID,并在触发启动时候增加了可选电平触发或上升/下降沿触发(例化IP时选择),新版本号V1.1。

OpenFPGA的博客 1445

POJ 大数篇(POJ+百炼)

写总结是为了记得更好,力求完善。 大整数加法:    很容易知道,大数输入是用字符串。    所以可以再定义两个数组an1[M +10],an2[M + 10]存放转换之后的大数,需要进行初始化为0,注意存放时应该从个位开始。存完之后开始相加之和存入an1[i],如果an1[i] > 9;an1[i + 1]++。    例题:百炼2981   #include #include #de

Since_natural_ran 1151

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ 3508 Hide That Number G++ 方法1找规律未实现 方法2模拟

POJ 3508 Hide That Number G++ 方法1找规律未实现 方法2模拟

woniupengpeng的专栏 378

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

poj3508

不明白为什么电话号码第一个数字不能是0,如果是0就是impossible 简单题 View Code #include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstdlib&gt;#include &lt;cstring&gt;using namespace std;#define maxn 1000005int f[m...

weixin_34167043的博客 155

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

poj 大整数的加减乘除

#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; class CArray { public: int *p = NULL; int * init(int s) { if (p) delete[]p; p = new int[s]; return p; } ~CArray() ...

vivaespana51的博客 608

poj3508(高精度模拟减法)

下面这段是我超时的代码: 我自己做这道的理解:首先是原数字X乘以10再加上X,也就是Y=10*X+X;如果能找到Y(1…… 10之间的一个数),即可算出X(算出的X要保证是和题目给出的数字是数位相同的),但是我这道题正是这样做的,所以还是要超时的。 #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; const int ma

Keep_Trying_Go的博客 457

百练_2736大整数减法(大数相减)

描述 求两个大的正整数相减的差。 输入 共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。 输出 一行,即所求的差。 样例输入 9999999999999999999999999999999999999 9999999999999 样例输出 9999999999999999999999990000000000

Cynical丶Gary_博客 5418

QSS伪类选择器详解:Qt界面状态样式实战指南

在图形界面开发中,控件的交互状态(如悬停、按下、选中、禁用)往往需要动态样式反馈,而传统代码方式不仅繁琐且易闪屏。Qt样式表(QSS)通过伪类选择器为控件的不同状态提供声明式样式方案,类似CSS的:hover和:focus,却针对Qt控件体系扩展出更多状态。理解其优先级、组合与子控件匹配规则,能大幅提升界面开发效率和视觉一致性。从按钮的悬停变蓝、按下偏移,到输入框聚焦高亮、复选框自定义勾选,再到列表项的选中与失焦配色,伪类选择器覆盖了几乎所有交互场景。本文系统拆解高频伪类的实际写法、常见踩坑点及完整的登录界

weixin_33894640的博客 434

POJ 1131 Octal Fractions (Java大数,八进制转十进制)

Octal Fractions Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6959   Accepted: 3825 Description Fractions in octal (base 8) notation can be expressed exact

AC_Dreameng 5040

poj2325 大数除法+贪心

将输入的大数除以9 无法整除再除以 8,7,6,..2,如果可以整除就将除数记录,将商作为除数继续除9,8,...,3,2. 最后如果商为1 证明可以除尽 将被除过的数从小到大输出即可 #include #include #define mem(a) memset(a,0,sizeof (a)) using namespace std; char s[1005], t[1005]; int ba

烟雨醉星 537

POJ3508 Hide That Number

 POJ3508 Hide That Number  题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=3508思路:这题想想其实挺有趣的,不用过多的去考虑(开始考虑多了,TLE了几次),关键IMPOSSIBLE的条件怎么去判断它。具体就不说了,好久没做水题,手生了许多。 代码:import java.i

759

第二届北京林业大学“计蒜客”杯程序设计竞赛 Problem F - 易彰彪的一张表

字符串

Infinity_Izayoi的博客 1451
上一篇: poj 3512 Incidental Points(计算几何)
下一篇: HDU 1786 Tempter of the Bone again(大数+完全背包)
Infinity_Izayoi
博客等级 码龄11年 5粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值