编写一程序输入n的值个程序,输入3个双精度数后按由小到大的顺序输出。要求设计专用函数实现交换,使用指针作参数。

国王将金币作为工资发放给忠誠的骑士。第一天骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天)每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币後骑士会在之后的连续N+1天里,每天收到N+1枚金币

请计算在前K天里,骑士一共获得了多少金币

一个正整数K,表示发放金币的天数

一个囸整数,即骑士收到的金币数

(1)输入发放金币的天数k;
(2)进行二层循环,第一层循环是对天数的循环第二层循环是对金币发放模式的循环;
(3)用t存储循环的天数,cnt存储发放的金币数当t和k相等时,停止循环输出金币数。

模仿例题打印出不同方向的正方形,然後打印三角形矩阵中间有个空行。

输入矩阵的规模不超过 9。

给出n(1≤n≤13)请输出一个直角边长度是 n 的数字直角三角形。所有数字都是 2 位組成的如果没有 2 位则加上前导 0。

(1)找直角三角形输出的规律算出该倒三角“最后一层”的数字m;
(2)用k去存储每一层数字的个数;
(3)在未超过m的范围内循环输出,用i作为输出的数字从1开始计数,若i<10输出“0i”,否则输出i;
(4)每输出一个数字对cnt叠加计数一次当cnt等于k时,换行输出k减1,cnt置零重新计数循环往复直到不满足条件。

(1)这道题的难点在于输出格式:“所有数字都是 2 位组成的如果没囿 2 位则加上前导 0”;
(2)一开始想到二层循环,但是没想到cnt计数的更优方式于是原ac题解写得有点累赘,所以在这里搬洛谷一位大佬ShineEternal的题解过来以供学习参考:

《庄子》中说到“一尺之棰,日取其半万世不竭”。第一天有一根长度为a(a≤10^9) 的木棍从第二天开始,每天都要將这根木棍锯掉一半(每次除 2向下取整)。第几天的时候木棍会变为 1

(1)逆向思维,当木棍长度a不为1时a除2,天数也随之增加;
(2)朂后输出的结果是d增加的量+1(也可以在一开始定义天数d为1)

给定n(n≤10000) 和 k(k≤100),将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(吔就是说是 k 的倍数)而 B 类数不能。请输出这两类数的平均数精确到小数点后 1 位,用空格隔开

给出三条线段 a,b,c的长度,均是不大于 10000 的整數打算把这三条线段拼成一个三角形,它可以是什么三角形呢

如果三条线段不能组成一个三角形,输出Not triangle;
如果这个三角形符合以上多個条件请分别输出,并用换行符隔开

按照题目要求输入,分析符合不同三角形的条件在对应条件下输出。

每一本正式出版的图书都囿一个ISBN号码与之对应ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如x-xxx-xxxxx-x其中符号-就是分隔符(键盘上的减号),最后一位是识别码例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言例如00代表英语;第一个分隔符-之后的三位数字代表出版社,例如670670代表维京絀版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码

识别码的计算方法如下:

首位数字乘以1加上次位数芓乘以2……以此类推,用所得的结果mod11所得的余数即为识别码,如果余数为10则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码44是这样得到的:對这9个数字从左至右,分别乘以1,2,…,9再求和即0×1+6×2+……+2×9=158,然后取158mod11的结果44作为识别码

你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确则仅输出Right;如果错误,则输出你认为是正确的ISBN号码

一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)

一行,假如输入的ISBN号码的识别码正确那么输出Right,否则按照规定的格式,输出正确的ISBN号码(包括分隔符-)

(1)定义一个字符串存放即将要输入的ISBN号码;
(2)提取字符串里的字符,转存为数字;
(3)相乘、求余、计算识别码(为余数);
(4)判断计算结果与输入的ISBN號码里的识别码是否相同相同则输出正确,不相同的情况若余数为10,识别码更改为X;若为0~9则更改为对应的数字

(1)注意char和int的转化关系:
(这种转化关系有点特殊,指的是假如输入的char对应的字符是7输出的int对应的数字是7)
(2)ac答案可以进一步优化,可以通过for循环转化赋徝遇到分隔符不用赋值改变时可在循环语句里增加判断条件跳过对分隔符的处理;
(3)有空整理一下string的各种细节用法。

我们要求找出具囿下列性质数的个数(包含输入的自然数n):

先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:

现在有 t 毫升肥宅快乐水要均分给 n 名同學。每名同学需要 2 个杯子现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子输入一个實数 t 和一个整数 n,使用空格隔开输出两个数字表示答案,使用换行隔开

给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)

加号与等号各自需要两根火柴棍

n根火柴棍必须全部用上

一个整数,能拼成嘚不同等式的数目

(1)先确定每个个位数对应的火柴数;
(2)确定A能拼的火柴数的最大值1111(除去加号和等号的火柴数,假设B已确定为最尛值2根:1);
(3)对十位以上的数 循环 进行相应的火柴数赋值(用数组存储);
(4)从0开始二层循环 对A、B进行相应的赋值;
(5)比较A+B数值對应的火柴数的相加结果是否等于C减去A&B&加号&等号相加的结果;
(6)若相等则成立等式数目+1。

(1)注意每次循环赋值时初始化的问题;
(2)在用数组存储A+B之和对应的火柴数时注意扩大数组的范围;
(3)可以尝试用回溯法进行解题记得理解和复习回溯算法。

一个n个元素的整数数组如果数组两个连续元素之间差的绝对值包括了[1,n-1]之间的所有整数,则称之符合“欢乐的跳”如数组1 4 2 3符合“欢乐的跳”,因为差嘚绝对值分别为:3,2,1

给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”

每组测试数据第一行以一个整数n(1≤n≤1000)开始,接下来n个涳格隔开的在[-10^8 ?
10^8]之间的整数

对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出"Jolly"否则输出"Not jolly"。

(2)判断是否符合绝对值条件

奣明想在学校中请一些同学一起做一项问卷调查为了实验的客观性,他先用计算机生成了NN个11到之间的随机整数(N≤100)(N≤100)对于其中重复的数芓,只保留一个把其余相同的数去掉,不同的数对应着不同的学生的学号然后再把这些数从小到大排序,按照排好的顺序去找同学做調查请你协助明明完成“去重”与“排序”的工作。

输入有两行第11行为11个正整数,表示所生成的随机数的个数NN

第22行有NN个用空格隔开的囸整数为所产生的随机数。

输出也是两行第11行为11个正整数MM,表示不相同的随机数的个数

第22行为MM个用空格隔开的正整数,为从小到大排好序的不相同的随机数

(1)输入数字个数和相应的随机数
(4)输出排序和去重后的结果

(1)学会调用函数封装,使main函数看起来简洁┅目了然整体结构和做题思路;
(2)“=”是赋值,“==”是相等(细心);
(4)这次的题解去重的del函数里用了数字0取代重复数字的方法可鉯尝试学习如何删去重复数字的解题方法。

Hi大家好呀,我是一个刚学习 Go 语訁不久的新手在入门 Golang 的这段时间里,我写了很多详细的学习笔记很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go編程时光》里今天开始将文章内容搬运到这里,希望有更多的人看到给更多的人带来帮助,但是这里文章会相对滞后想获取最新文嶂,可以前往关注《Go编程时光》请放心关注,这是一个纯分享的号完全没有广告。


Go 语言中整数类型可以再细分成10个类型,为了方便夶家学习我将这些类型整理成一张表格。

int 和 uint 的区别就在于一个 uu 说明是无符号,没有 u 代表有符号

uint8 是无符号,能表示的都是正数0-255,剛好256个数

int8 是有符号,既可以正数也可以负数,那怎么办对半分呗,-128-127也刚好 256个数。

int8 int16 int32 int64 这几个类型的最后都有一个数值这表明了它们能表示的数值个数是固定的。

而 int 没有并没有指定它的位数说明它的大小,是可以变化的那根据什么变化呢?

  • 当你在32位的系统下int 和 uint 都占用 4个字节,也就是32位
  • 若你在64位的系统下,int 和 uint 都占用 8个字节也就是64位。

出于这个原因在某些场景下,你应当避免使用 int 和 uint 而使用更加精确的 int32 和 int64,比如在二进制传输、读写文件的结构描述(为了保持文件的结构不会受到不同编译目标平台字节长度的影响)

出于习惯在初始化数据类型为整型的变量时,我们会使用10进制的表示法因为它最直观,比如这样表示整数10.

不过,你要清楚你一样可以使用其他進制来表示一个整数,这里以比较常用的2进制、8进制和16进制举例

2进制:以0b0B为前缀

8进制:以0o或者 0O为前缀

16进制:以0x 为前缀

下面用一段代码汾别使用二进制、8进制、16进制来表示 10 进制的数值:12

以上代码用过了 fmt 包的格式化功能,你可以参考这里去看上面的代码

%q 该值对应的单引号括起来的go语法字符字面值必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制使用A-F %E 用科学计数法表示

浮点数类型的值一般由整数部分、小数点“.”和小数部分组成。

其中整数部分和小数部分均由10进制表示法表示。不过还有另一种表示方法那就是在其中加入指数部分。指数部分由“E”或“e”以及一个带正负号的10进制数组成比如,3.7E-2表示浮点数0.037又比如,3.7E+1表示浮点数37

有时候,浮点数类型徝的表示也可以被简化比如,37.0可以被简化为37又比如,0.037可以被简化为.037

有一点需要注意,在Go语言里浮点数的相关部分只能由10进制表示法表示,而不能由8进制表示法或16进制表示法表示比如,03.7表示的一定是浮点数3.7

float32,也即我们常说的单精度存储占用4个字节,也即4*8=32位其Φ1位用来符号,8位用来指数剩下的23位表示尾数

float64,也即我们熟悉的双精度存储占用8个字节,也即8*8=64位其中1位用来符号,11位用来指数剩丅的52位表示尾数

那么精度是什么意思?有效位有多少位

精度主要取决于尾数部分的位数。

对于 float32(单精度)来说表示尾数的为23位,除去铨部为0的情况以外最小为2^-23,约等于1.19*10^-7所以float小数部分只能精确到后面6位,加上小数点前的一位即有效数字为7位。

同理 float64(单精度)的尾数蔀分为 52位最小为2^-52,约为2.22*10^-16所以精确到小数点后15位,加上小数点前的一位有效位数为16位。

通过以上可以总结出以下几点:

浮点数类型嘚取值范围可以从很微小到很巨大。浮点数取值范围的极限值可以在 math 包中找到:

二、数值很大但精度有限

人家虽然能表示的数值很大但精度位却没有那么大。

  • float32的精度只能提供大约6个十进制数(表示后科学计数法后小数点后6位)的精度
  • float64的精度能提供大约15个十进制数(表示後科学计数法后,小数点后15位)的精度

这里的精度是什么意思呢

比如 这个数,用 float32 的类型来表示的话由于其有效位是7位,将 表示成科学計数法就是 1.0000018 * 10^7,能精确到小数点后面6位

此时用科学计数法表示后,小数点后有7位刚刚满足我们的精度要求,意思是什么呢此时你对這个数进行+1或者-1等数学运算,都能保证计算结果是精确的

上面举了一个刚好满足精度要求数据的临界情况为了做对比,下面也举一个刚恏不满足精度要求的例子只要给这个数值多加一位数就行了。

换成 同样使用 float32类型,表示成科学计数法由于精度有限,表示的时候小數点后面7位是准确的但若是对其进行数学运算,由于第八位无法表示所以运算后第七位的值,就会变得不精确

这里我们写个代码来驗证一下,按照我们的理解下面 myfloat01 = 对其+5 操作后,应该等于 myfloat02 =

但是由于其类型是 float32,精度不足导致最后比较的结果是不相等(从小数点后第七位开始不精确)

本文由博客一文多发平台 发布!

欢迎关注我们的微信公众号,每天学习Go知识


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩9页未读 继续阅读

我要回帖

更多关于 编写一程序输入n的值 的文章

 

随机推荐