二分答案习题

第1题     累加和

1、老师在黑板上写下一个正整数,记为X1。

2、删除X1的最后一位数字后,得到的正整数记为X2。

3、删除X2的最后一位数字后,得到的正整数记为X3。

。。。。

进行若干次操作后,剩下的正整数只有1位数字了,记为Xn。

令Y = X1 + X2 + X3 + ....+ Xn。

例如:老师刚开始在黑板写下的正整数是509,那么:

    X1 = 509

    X2 = 50

    X3 = 5

    那么此时的Y = 509+50+5 = 564。

现在给出Y,你的任务是求出X1。数据能保证对于Y,X1不会有多个解,如果找不到X1,那么输出-1。

输入格式

一行,一个正整数Y。

输出格式

一行,一个整数X1,或者输出-1。

输入/输出例子1

输入:

564

输出:

509

输入/输出例子2

输入:

565

输出:

-1

输入/输出例子3

输入:

137174210616796

输出:

123456789555123

样例解释

#include<bits/stdc++.h>
using namespace std;
long long y,x;
long long z(long long a){
    long long s=a;
    while(a>0)
    {
        s+=a/10;
        a=a/10;
    }
    return s;
}
int main(){
    cin>>y;
    long long l=0,r=y;
    while(l+1<r)
    {
        long long m=(l+r)/2;
        long long yy=z(m);
        if(yy==y)
        {
            cout<<m;
            return 0;
        }
        if(yy>y)r=m;
        if(yy<y)l=m;
    }
    cout<<-1;
    
    return 0;
}

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些MySQL二级考试的练习题及答案,供参考: 1. 创建一个名为“student”的数据库,并在其中创建一个名为“score”的表,包含学生的学号(sid)、姓名(name)、课程名称(course)和成绩(score)四个字段。其中,学号和姓名为字符串类型,长度为10个字符;课程名称为字符串类型,长度为20个字符;成绩为整数类型。 ``` CREATE DATABASE student; USE student; CREATE TABLE score ( sid VARCHAR(10), name VARCHAR(10), course VARCHAR(20), score INT ); ``` 2. 向“score”表中插入以下数据: ``` INSERT INTO score (sid, name, course, score) VALUES ('20180001', '张三', '语文', 80), ('20180001', '张三', '数学', 90), ('20180001', '张三', '英语', 85), ('20180002', '李四', '语文', 75), ('20180002', '李四', '数学', 88), ('20180002', '李四', '英语', 92), ('20180003', '王五', '语文', 85), ('20180003', '王五', '数学', 90), ('20180003', '王五', '英语', 95); ``` 3. 查询“score”表中每个学生的总成绩和平均成绩,并按总成绩从高到低排序。 ``` SELECT sid, name, SUM(score) AS total_score, AVG(score) AS avg_score FROM score GROUP BY sid, name ORDER BY total_score DESC; ``` 4. 查询“score”表中英语成绩最高的学生姓名和成绩。 ``` SELECT name, score FROM score WHERE course = '英语' ORDER BY score DESC LIMIT 1; ``` 5. 将“score”表中所有学生的成绩加10分。 ``` UPDATE score SET score = score + 10; ``` 以上是一些基础的MySQL二级考试练习题及答案,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值