C. Long Beautiful Integer
2024-09-03 15:56:49
题目思路还是很直接,首先按要求生成字符串。如果该目标字符串小于原字符串,那么从第k位开始,找到最后一个非9的位置,++,同时如果有9,要考虑进位(一开始没有考虑WA了一次)。
犯了一个错误,就是比较字符串大小时,一开始写的是如果b中有一个小于a,就return false.WA了半天。可以直接用strcmp()。
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+;
int n,k;
char a[N],b[N];
bool check()
{
for(int i=;i<=n;i++)
{
if(a[i]<b[i])
return true;
if(a[i]>b[i])
return false;
}
return true;
}
int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
scanf("%s",a+);
for(int i=;i<=n;i++)
{
if(i<=k)
b[i]=a[i];
else
b[i]=b[i-k];
}
int p;
if(!check())//strcmp(b+1,a+1)<0
{
p=k;
while(b[p]==''&&p>)//忘记考虑9不能再加1的情况
{
b[p]='';
p--;
}
b[p]++;
for(int i=k+;i<=n;i++)
b[i]=b[i-k];
}
printf("%d\n",n);
for(int i=;i<=n;i++)
printf("%c",b[i]);
printf("\n");
}
return ;
}
最新文章
- 第三方登录插件.NET版XY.OAuth-CSharp
- 在SecureCRT中使用rz和sz传输文件
- codeforces B. Sereja and Stairs 解题报告
- loj 1034(最小点基)
- P1379 八数码问题
- 2、HTML
- AlarmManager
- 05-3. 求a的连续和(15)
- 【SoDiaoEditor电子病历编辑器】阶段性更新--新增复选框、日期控件、表格排版支持等
- python进阶学习(三)
- Windows 10 快捷键汇总表格
- PHP访问SQL Server驱动对应关系
- hdu 5095 多项式模拟+有坑
- 关于操作系统:eos、deepin
- Elasticsearch四种常见的相关度分数优化方法
- ubuntu 16.04.1 LTS postgresql安装配置
- POSIX是什么?
- linux中增加swap分区文件的步骤方法
- python排序算法实现(冒泡、选择、插入)
- angular项目中使用jQWidgets
热门文章
- 啥?你想diy一个智能音箱,来吧
- BZOJ 2434 阿狸的打字机(ac自动机+dfs序+树状数组)
- shell脚本自动化部署
- docker pull 时报错Create more free space in thin pool or use dm.min_free_space option to change behavior
- 一步步搭建jumpserver
- 将你的Archlinux打造成路由器
- A water problem 大数取余。
- Windows AD日志分析平台WatchAD安装教程
- (数据科学学习手札78)基于geopandas的空间数据分析——基础可视化
- pikachu-越权漏洞(Over Permission)