• 题意:给你一个正整数\(n\),每次可以对\(n\)加一,问最少操作多少次是的\(n\)的所有位数之和不大于\(s\).

  • 题解:\(n\)的某个位置上的数进位,意味这后面的位置都可以被更新为\(0\),所以我们从高位往低位记录一个\(sum\),然后根据情况判断即可.

  • 代码:

    int t;
    int s;
    ll n;
    char str[N]; int main() {
    //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    t=read();
    while(t--){
    scanf("%s",str+1);
    s=read(); int len=strlen(str+1);
    int cnt=0;
    int pos=-1;
    ll n=0;
    for(int i=1;i<=len;++i){
    ll now=str[i]-'0';
    n=n*10+now;
    }
    for(int i=1;i<=len;++i){
    cnt+=str[i]-'0';
    if(str[i]=='9') continue;
    if(cnt<s) pos=i;
    } if(cnt<=s){
    puts("0");
    continue;
    } if(pos==-1){
    str[1]='1';
    for(int i=2;i<=len+1;++i) str[i]='0';
    ll tmp=0;
    for(int i=1;i<=len+1;++i){
    ll now=str[i]-'0';
    tmp=tmp*10+now;
    }
    printf("%lld\n",tmp-n);
    continue;
    } str[pos]++;
    for(int i=pos+1;i<=len;++i) str[i]='0';
    ll tmp=0;
    for(int i=1;i<=len;++i){
    ll now=str[i]-'0';
    tmp=tmp*10+now;
    }
    printf("%lld\n",tmp-n);
    } return 0;
    }

最新文章

  1. [Android]电话拨号器开发
  2. js 获取根目录 获取参数
  3. Groonga 3.0.8 发布,全文搜索引擎
  4. WinForm------TreeList实现鼠标经过节点背景色改变
  5. 学习lamda表达式
  6. GCC常用参数
  7. 无法绑定到新的显示成员,参数名:newDisplayMember
  8. 最近Get到的一些HTML/CSS中的小点(一)
  9. sql基础,必须会的————随便整理、杂乱无章
  10. Pdf文件处理组件对比(Aspose.Pdf,Spire.Pdf,iText7)
  11. vue项目实现记住密码到cookie功能(附源码)
  12. hi3531 SDK 编译 kernel, 修改 参数
  13. L1-Day9
  14. (九)逻辑运算,order by,desc
  15. Java笔记——泛型擦除
  16. python框架之Django(14)-rest_framework模块
  17. 【原创】Linux常用命令记录
  18. Linux基础第四课——文件操作
  19. BZOJ 4671 异或图 | 线性基 容斥 DFS
  20. Android样式的开发:selector篇

热门文章

  1. CopyOnWriteArrayList 读写分离,弱一致性
  2. ps 2020 下载
  3. LeetCode349. 两个数组的交集
  4. LeetCode700. 二叉搜索树中的搜索
  5. HTML&amp;CSS:构建网站不能不说的那些事儿
  6. Flask之静态文件处理
  7. Jmeter如何录制APP客户端脚本
  8. 如何使用Set去重
  9. WPF mvvm 验证,耗时两天的解决方案
  10. Redis集群数据没法拆分时的搭建策略