首页 > 其他分享 >一千题,No.0130(多二了一点)

一千题,No.0130(多二了一点)

时间:2024-07-21 20:27:39浏览次数:19  
标签:多二 一千 输出 样例 组成 No.0130 输入 数位

若一个正整数有 2n 个数位,后 n 个数位组成的数恰好比前 n 个数位组成的数多 2,则称这个数字“多二了一点”。如 24、6668、233235 等都是多二了一点的数字。
给定任一正整数,请你判断它有没有多二了那么一点。

输入格式:

输入在第一行中给出一个正整数 N(≤101000)。

输出格式:

在一行中根据情况输出下列之一:

  • 如果输入的整数没有偶数个数位,输出 Error: X digit(s),其中 X 是 N 的位数;
  • 如果是偶数位的数字,并且是多二了一点,输出 Yes: X - Y = 2,其中 X 是后一半数位组成的数,Y 是前一半数位组成的数。注意:为了让题目简单,输入保证此时 Y 的个位数不大于 7。
  • 如果是偶数位的数字,但并不是多二了一点,输出 No: X - Y != 2,其中 X 是后一半数位组成的数,Y 是前一半数位组成的数。

输入样例 1:

233235

输出样例 1:

Yes: 235 - 233 = 2

输入样例 2:

5678912345

输出样例 2:

No: 12345 - 56789 != 2

输入样例 3:

2331235

输出样例 3:

Error: 7 digit(s)

 解题思路:

注意“组成的数”指的是把各位置得数字加起来,而不是直接截取,有点反人类

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    getline(cin,s);
    if(s.size() % 2 != 0)
    {
        cout << "Error: " << s.size() << " digit(s)";
    }
    else
    {
        int a = 0,b = 0;
        for(int i = 0;i < s.size();++i)
        {
            if(i < s.size()/2) a += s[i];
            else b += s[i];
        }
        string c,d;
        c = s.substr(0,s.size()/2);
        d = s.substr(s.size()/2);

        if(b - a == 2) cout << "Yes: " << d << " - " << c << " = 2";
        else cout << "No: " << d << " - " << c << " != 2";
    }
}

标签:多二,一千,输出,样例,组成,No.0130,输入,数位
From: https://blog.csdn.net/2301_76783671/article/details/140588465

相关文章

  • 一千题,No.0093(延迟的回文数)
    给定一个 k+1 位的正整数 N,写成 ak​⋯a1​a0​ 的形式,其中对所有 i 有 0≤ai​<10 且 ak​>0。N 被称为一个回文数,当且仅当对所有 i 有 ai​=ak−i​。零也被定义为一个回文数。非回文数也可以通过一系列操作变出回文数。首先将该数字逆转,再将逆转数与该数相加......
  • 一千题,No.0089(链表元素分类)
    给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而[0,K]区间内的元素都排在大于K的元素前面。但每一类内部元素的顺序是不能改变的。例如:给定链表为18→7→-4→0→5→-6→10→11→-2,K为10,则输出应该为-4→-6→-2→7→0→5→10......
  • 一千题,No.0086(开学寄语)
    下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其QQ,封其电脑,夺其手机,收其ipad,断其wifi,使其百无聊赖,然后,净面、理发、整衣,然后思过、读书、锻炼、明智、开悟、精进。而后必成大器也!本题要求你写个程序帮助这所学校的老师检查所有学生的物品,以助其成大器......
  • 一千题,No.0087(多选题常见计分法)
    批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到50%分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。输......
  • 一千题,No.0064(螺旋矩阵)
    本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。输入格式:输入在第1行中给出一个正整数 ......
  • 一千题,No.0063(数列的片段和)
    给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列{0.1,0.2,0.3,0.4},我们有(0.1)(0.1,0.2)(0.1,0.2,0.3)(0.1,0.2,0.3,0.4)(0.2)(0.2,0.3)(0.2,0.3,0.4)(0.3)(0.3,0.4)(0.4)这10个片段。给定正整数数列,求出全部片段包......
  • 一千题,No.0060(划拳)
    划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请......
  • 一千题,No.0050(插入与归并)
    根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭......
  • 一千题,No.0039(反转链表)
    给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为1→2→3→4→5→6,K 为3,则输出应该为3→2→1→6→5→4;如果 K 为4,则输出应该为4→3→2→1→5→6,即最后不到 K 个元素不反转。输入格式:每个输入包含1个测试用例。每个测试......
  • Notes-02年Fan-2002-Analysis of guided resonances in photonic crystal slabs-BIC的
    Notes-02年Fan-2002-Analysisofguidedresonancesinphotoniccrystalslabs目录Notes-02年Fan-2002-Analysisofguidedresonancesinphotoniccrystalslabs共振的含义就是:在光锥内,发光、辐射。引言guidedmodeguidedmoderesonance--Similartotheguidedmode,a......