信息学奥赛初赛天天练-46-CSP-J2020阅读程序2-进制转换、十进制转k进制、等比数列通项公式、等比数列求和公式应用

news2024/9/24 15:27:55

PDF文档公众号回复关键字:20240713

在这里插入图片描述

2020 CSP-J 阅读程序2

1阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填 ×。除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)

01 #include <iostream>
02 using namespace std;
03 
04 long long n, ans;
05 int k, len;
06 long long d[1000000];
07 
08 int main() {
09   cin >> n >> k;
10   d[0] = 0;
11   len= 1;
12   ans = 0;
13   for (long long i = 0; i <n; ++i) {
14     ++d[0];
15     for (int j = 0; j + 1<len; ++j) {
16       if (d[j] == k) {
17         d[j] = 0;
18         d[j + 1] += 1;
19         ++ans;
20       }
21     }
22     if (d[len- 1] == k) {
23       d[len - 1] = 0;
24       d[len] =1;
25       ++len;
26       ++ans;
27     }
28   }
29   cout << ans << endl;
30   return 0;
31 }

假设输入的 n 是不超过 2^62 的正整数,k都是不超过 10000 的正整数,完成下面的判断题和单选题

判断题

22.若 k=1,则输出 ans 时,len=n ( ) [1.5分]

23.若 k>1,则输出 ans 时,len —定小于 n ( ) [1.5分]

24.若 k>1,则输出 ans 时,klen —定大于n ( ) [1.5分]

单选题

25.若输入的n等于:10^15,输入的 k 为 1,则输出等于( )[3分]

A.1

B.(10^30 − 10^15)/2

C.(10^30 + 10^15)/2

D.10^15

26.若输入的 n 等于205,891,132,094,649(即330),输入的 k 为 3,则输出等于( )[3分]

A.3^30

B.(3^30−1)/2

C.3^30−1

D.(3^30+1)/2

27.若输入的 n 等于 100,010,002,000,090,输入的 k 为 10,则输出等于( )[3分]

A.11,112,222,444,543

B.11,122,222,444,453

C.11,122,222,444,543

D.11,112,222,444,453

2 相关知识点

1)十进制整数转R进制

2) 十进制小数转R进制

2) 等比数列

等比数列通项公式

n项等比数列,其中 a1是首项,an是第n项,q为公比

例如

a1=1,q=2

a3=1*2^(3-1)=4

等比数列求和公式

Sn为n项等比数列,首项为a1,公比为q的和

例如

a1=1,q=2

S3=1*(1-2^3)/(1-2)=7

3 思路分析

/*
  ans每次进位都会加1,因此ans表示总的进位次数
  len在len-1需要进位时才加1,并且进位,因此len是所有数字的长度
*/
11   len= 1;
12   ans = 0;

/*
  从如下代码可以看出d[0]一直累加 判断是否到k,到k后清0
  把n拆分成多个k,满足k后进位
*/
10   d[0] = 0;
14     ++d[0];
16       if (d[j] == k) {
17         d[j] = 0;
22     if (d[len- 1] == k) {
23       d[len - 1] = 0;

/*
  当前长度0~len-1,逐位判断是否达到k,达到k后进位
*/
15     for (int j = 0; j + 1<len; ++j) {
16       if (d[j] == k) {
17         d[j] = 0;
18         d[j + 1] += 1;
19         ++ans;
20       }
21     }
/*
  判断最后一位是否达到k,达到k后进位,增加长度
*/
22     if (d[len- 1] == k) {
23       d[len - 1] = 0;
24       d[len] =1;
25       ++len;
26       ++ans;
27     }    

假设输入的 n 是不超过 2^62 的正整数,k都是不超过 10000 的正整数,完成下面的判断题和单选题

判断题

22.若 k=1,则输出 ans 时,len=n ( F ) [1.5分]

分析

k=1时,打破了进位逻辑,len最大为2
例如 n=3 k=1 时,len=2 n=3 不相等,具体如下
i=0时,执行22行,d[0]=0,d[1]=1,len=2,ans=1
i=1时,执行15行,d[0]=0,d[1]=2,len=2,ans=2,不满足22行
i=2时,执行15行,d[0]=0,d[1]=3,len=2,ans=3,不满足22行

23.若 k>1,则输出 ans 时,len —定小于 n ( F ) [1.5分]

分析

len是k进制的位数,当n=2,k=2时,len=2,n=2 即 len=n
所以错误

24.若 k>1,则输出 ans 时,k^len —定大于n ( T ) [1.5分]

分析

n用k进制表示,最大值为k^len-1
k^len>k^len-1
所以k^len>n

例如 n=3,k=2时 len为2
k^len=2^2=4
n=3
k^len>n

单选题

25.若输入的n等于:10^15,输入的 k 为 1,则输出等于( D )[3分]

A.1

B.(10^30 − 10^15)/2

C.(10^30 + 10^15)/2

D.10^15

分析

/*
  由于k=1
  i=0时,执行22行,d[0]=0,d[1]=1,len=2,ans=1
  i=1时,执行15行,d[0]=0,d[1]=2,len=2,ans=2,不满足22行
  i=2时,执行15行,d[0]=0,d[1]=3,len=2,ans=3,不满足22行
  i=3时,执行15行,d[0]=0,d[1]=4,len=2,ans=4,不满足22行
  ...
  i=10^15时,执行15行,d[0]=0,d[1]=10^15,len=2,ans=10^15
*/
10   d[0] = 0;
11   len= 1;
12   ans = 0;
13   for (long long i = 0; i <n; ++i) {
14     ++d[0];
15     for (int j = 0; j + 1<len; ++j) {
16       if (d[j] == k) {
17         d[j] = 0;
18         d[j + 1] += 1;
19         ++ans;
20       }
21     }
22     if (d[len- 1] == k) {
23       d[len - 1] = 0;
24       d[len] =1;
25       ++len;
26       ++ans;
27     }
28   }

26.若输入的 n 等于205,891,132,094,649(即3^30),输入的 k 为 3,则输出等于( B )[3分]

A.3^30

B.(3^30−1)/2

C.3^30−1

D.(3^30+1)/2

分析

输出ans是累加进位次数
例1
输入 n=100 k=10
循环i从0开始,到n-1结束
0~9 累加10 ,进位1次,十位为1
...
0~9 累加10 ,进位1次,十位为10
十位进位1次,百位位1
所以100需要进位10+1=11次
100=10^1+10^0    
例2
输入 n=1000 k=10
循环i从0开始,到n-1结束
0~9 累加10 ,进位1次,十位为1
...
0~9 累加10 ,进位1次,十位为10 -共10次
十位进位1次,百位位1 共11次
同理百位为2时需要进位11次
...
同理百位为10时需要进位11次
上述共110次
百位为10需要进位1次
所以总共111次
111=10^2+10^1+10^0

k为3时
3^30=3^29+3^28...+3^1+3^0=1*(1-3^30)*(1-3)=(3^30-1)/2

27.若输入的 n 等于 100,010,002,000,090,输入的 k 为 10,则输出等于( D )[3分]

A.11,112,222,444,543

B.11,122,222,444,453

C.11,122,222,444,543

D.11,112,222,444,453

分析

根据26题分析
90进位次数
9*2^0=9

2,000,000进位次数
1,000,000进位次数
10^5+10^4+10^3+10^2+10^1+10^0=111111
2,000,000进位次数
111111*2=222222

10,000,000,000进位次数
10^9+10^8+...+10^1+10^0=1111111111

100,000,000,000,000进位次数
10^13+10^12+...+10^1+10^0=11111111111111
所有进位次数
11111111111111+1111111111+222222+9=11112222444453

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java各种锁介绍

在 Java 中&#xff0c;锁是用来控制多个线程对共享资源进行访问的机制。主要有以下几种类型的锁&#xff1a; 1.互斥锁&#xff08;Mutex Lock)&#xff1a;最简单的锁&#xff0c;一次只允许一个线程访问共享资源。如果一个线程获得了锁&#xff0c;其他线程必须等待锁被释放…

DEBUG:jeston卡 远程ssh编程

问题 jeston 打开网页 gpt都不方便 而且只需要敲命令就行 解决 下载MobaXterm(window执行) liunx需要虚拟机 软件 远程快速复制命令

【kubernetes】Helm包管理器基本概念与Chart实战

概念&#xff1a;基础架构与常用命令 三个重要概念&#xff1a; 1.chart 创建Kukernetes应用程序所必需的一组信息。 2.config 包含了可以合并到打包的chart中的配置信息&#xff0c;用于创建一个可发布的对象。 3.release 是一个与特走配置相结合的chart的运行实例。 常用命…

聊点基础---Java和.NET开发技术异同全方位分析

1. C#语言基础 1.1 C#语法概览 欢迎来到C#的世界&#xff01;对于刚从Java转过来的开发者来说&#xff0c;你会发现C#和Java有很多相似之处&#xff0c;但C#也有其独特的魅力和强大之处。让我们一起来探索C#的基本语法&#xff0c;并比较一下与Java的异同。 程序结构 C#程序…

数学建模·非线性规划

整型规划 适用于一个变量或多个变量的值只能是整型的情况 整形规划的分类 0-1背包问题 对于一个物品来说&#xff0c;只有选和不选两种情况 表现为单下标&#xff0c;单变量问题 例&#xff1a;建设学校问题 对于每个学校来说只有选和不选两种情况&#xff0c;在数学上我们用…

O型密封圈橡胶制品外观视觉检测解决方案

一;O型密封圈橡胶制品行业背景调查 O型密封圈橡胶制品的外观视觉检测是一个确保产品质量和性能的关键步骤。以下是对该检测过程的详细分析和归纳&#xff1a; 一&#xff1a;检测目的 确保O型密封圈橡胶制品在生产过程中无缺陷&#xff0c;如杂质、毛刺、尺寸不符等。 满足不同…

Vue.js学习笔记(五)抽奖组件封装——转盘抽奖

基于VUE2转盘组件的开发 文章目录 基于VUE2转盘组件的开发前言一、开发步骤1.组件布局2.布局样式3.数据准备 二、最后效果总结 前言 因为之前的转盘功能是图片做的&#xff0c;每次活动更新都要重做UI和前端&#xff0c;为了解决这一问题进行动态配置转盘组件开发&#xff0c;…

【Linux】多线程_3

文章目录 九、多线程3. C11中的多线程4. 线程的简单封装 未完待续 九、多线程 3. C11中的多线程 Linux中是根据多线程库来实现多线程的&#xff0c;C11也有自己的多线程&#xff0c;那它的多线程又是怎样的&#xff1f;我们来使用一些C11的多线程。 Makefile&#xff1a; te…

防火墙组网与安全策略实验

实验要求&#xff1a; 实现&#xff1a; 防火墙接口配置&#xff1a; 所有接口均配置为三层接口 由于G1/0/3口下为vlan环境&#xff0c;所以防火墙需要配置子接口 &#xff1a; 交换机划分vlan分开生产区和办公区、配置trunk干道 &#xff1a; 安全策略&#xff1a; 生产区访…

【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构④ | 4.7

前言 第4章对应的内容选择题和案例分析都会进行考查&#xff0c;这一章节属于技术相关的内容&#xff0c;学习要以教材为准。本章分值预计在4-5分。 目录 4.7 安全架构 4.7.1 安全威胁 4.7.2 定义与范围 4.7.3 整体架构设计 4.7.4 网络安全架构设计 4.7.5 数据库系统安…

Pod资源-持久化-网络暴露-env

一.资源清单 资源清单组成 apiVersion&#xff1a;v1 #对应不同的k8s版本中的api&#xff1b; kind&#xff1a;Pod #资源的名称&#xff08;service、ConfigMap、hpa.....&#xff09; metadata&#xff1a; #声明资源的元数据信息&#xff08;资源的…

JavaWeb后端学习

Web&#xff1a;全球局域网&#xff0c;万维网&#xff0c;能通过浏览器访问的网站 Maven Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建Java项目的工具 作用&#xff1a; 依赖管理&#xff1a;方便快捷的管理项目以来的资源&#xff08;jar包&#xff09;&am…

Linux - 探索命令行

探索命令行 Linux命令行中的命令使用格式都是相同的: 命令名称 参数1 参数2 参数3 ...参数之间用任意数量的空白字符分开. 关于命令行, 可以先阅读一些基本常识. 然后我们介绍最常用的一些命令: ls用于列出当前目录(即"文件夹")下的所有文件(或目录). 目录会用蓝色…

初学编程不知道怎么选?推荐学习的三种热门编程语言

在当今的社会需求下&#xff0c;市场上最常见、最受欢迎、最广泛应用的编程语言主要有三种&#xff1a;C语言、Java语言和Python语言。 既然要做出选择&#xff0c;我们就需要明白这三种编程语言各自有何特点和区别。 一、特点 C语言 高效与灵活&#xff1a;C语言生成的机器…

Date/SimpleDateFormat

Date 在Java中&#xff0c;java.util.Date 类用于表示日期和时间。它以自1970年1月1日00:00:00 GMT 一来的毫秒数来存储日期和时间信息。 1、构造方法 标准基准时间&#xff08;称为“历元&#xff08;epoch&#xff09;”&#xff1a;即1970年1月1日00:00:00 GMT。 tips: …

4G LTE教程

整体架构 物理层&#xff08;第 1 层&#xff09; 物理层通过空中接口传输来自 MAC 传输信道的所有信息。负责 RRC 层的链路自适应 (AMC)、功率控制、小区搜索&#xff08;用于初始同步和切换目的&#xff09;和其他测量&#xff08;LTE 系统内部和系统之间&#xff09;。 介…

运行在Linux上的程序越来越慢的排查思路

1、通过free -h 排查内存使用情况&#xff0c;是否内存满了 2、通过df -h 排查磁盘的使用情况&#xff0c;磁盘是否没有空间了 3、检查系统资源配置情况&#xff0c;比如使用ulimit -a检查当前会话的资源限制&#xff0c;如最大文件数、打开文件描述符数等&#xff0c;看是否…

vue 前端项目调用后端接口记录

axios中不同的类型的请求附带数据使用的关键字 请求类型关键字示例GETparamsaxios({ method: get, url: example.com, params: { key: value } })POSTdataaxios({ method: post, url: example.com, data: { key: value } })PUTdataaxios({ method: put, url: example.com, dat…

快速读出linux 内核中全局变量

查问题时发现全局变量能读出来会提高效率&#xff0c;于是考虑从怎么读出内核态的全局变量&#xff0c;脚本如下 f open("/proc/kcore", rb) f.seek(4) # skip magic assert f.read(1) b\x02 # 64 位def read_number(bytes):return int.from_bytes(bytes, little,…

深度解读李彦宏的“不要卷模型,要卷应用”

深度解读李彦宏的“不要卷模型&#xff0c;要卷应用” —— AI技术的应用之道 引言 在2024世界人工智能大会的舞台上&#xff0c;李彦宏的“不要卷模型&#xff0c;要卷应用”言论犹如一石激起千层浪&#xff0c;引发了业界对AI技术发展路径的深思。本文将深入探讨这一观点&a…