当前位置: 首页 > news >正文

整数分段c++

题目描述

小 Z 有一个大整数 s,整数 s 的位数最大可能有 100 位。现在小 Z 将要将这个整数 s 分成若干段,至少两段。

问是否存在一种分段方法,可以使得分段后的每一段整数的各个数位之和相同。

「注意」

本题中的大整数 s 比较特殊,可能含有前导 0,例如输入有可能为 0134 这种整数。

输入

第一行输入测试数据组数t,t>=1 且 t<=10;

每组数据输入有2行:

每组数据第一行输入一个整数 n,表示大整数 s 的位数。2≤n≤100。

每组数据第二行输入一个位数为 n 的大整数,即输入 n 个数字字符,每个数字字符都为 0 - 9 之间的字符,可能含有前导 0。

输出

输出t行

每行输出 YES 或者 NO。

样例输入

3
5
73452
6
000000
3
232

 样例输出

YES
YES
NO

示例代码: 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
bool check(ll x,string b){
    ll s=0;
    for(int i=0;i<b.size();i++){
        s=s+b[i]-'0';
        if(s==x) s=0; 
    } 
    if(s==0) return 1;
    else return 0;
} 
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    ll t;
    cin>>t;
    while(t--){
        ll n,sum=0;
        cin>>n; 
        string a;
        cin>>a;
        for(int i=0;i<a.size();i++){
            sum+=(a[i]-'0');
        }
        if(sum==0){
            cout<<"YES\n";continue;
        }
        bool v=0;
        for(int i=1;i<sum;i++){
            if(sum%i==0){
                if(check(i,a)==1){
                    v=1;break;
                } 
            }
        } 
        if(v==0) cout<<"NO\n";
        else cout<<"YES\n";
    }
    return 0;
}
http://www.dtcms.com/a/70778.html

相关文章:

  • java8 函数式编程 Supplier 类 supplier如何使用 supplier类作用
  • //要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:Switch方法)
  • Arduino安装包、驱动、ESP离线包【2025免费下载】【附开发资源包】
  • Huggingface命令行下载开源大模型
  • 【Delphi 开箱即用 8】多进程之间共享内存的封装单元
  • Cesium零基础速成教程:一小时入门Cesium
  • 学习springboot 的自动配置原理
  • 电子招采软件系统,如何实现10年可追溯审计
  • 动态内存分配:基于C语言的详细解析与实践
  • LRU(最近最少使用)算法实现
  • java 的标记接口RandomAccess使用方法
  • Visual Studio里的调试(debugging)功能介绍
  • Python第二十二课:元学习 | 学会学习的学习
  • L1-7 统一命名规范(java)
  • C 语 言 --- 二 维 数 组 的 应 用
  • 【Python 语法】排序算法
  • redis部署架构
  • Linux书签上下移动
  • Git LFS (Large File Storage) 简介
  • redis主从搭建
  • 79.HarmonyOS NEXT 手势操作模型详解:移动、缩放与旋转的实现原理
  • 1216走迷宫
  • OSPF | LSDB 链路状态数据库 / SPF 算法 / 实验
  • 接口自动化测试用例
  • 电路基础【2】:三极管基础:PNP与NPN三极管详解
  • 微服务》》四个问题
  • HTTP相关问题(AI回答)
  • 【Linux-传输层协议TCP】流量控制+滑动窗口+拥塞控制+延迟应答+捎带应答+面向字节流+粘包问题+TCP异常情况+TCP小结
  • 谷歌Gemini 3大模型发布,AI领域再掀波澜!
  • 数据结构与算法-图论-欧拉路径和欧拉回路(有向图和无向图,骑马修栅栏,单词游戏 play on words)详细代码注解