每日一题——预言家(高精度)

学习目标:

在c语言中,我们的数字类型是有范围的,int,long。当我们数字规模特别大时,这些基本的数字类型已经无法存储了。那么我们就要想办法,怎么存储这些数字?

字符串?数组?这些都可以,我们就来看一下比较常用的数组是怎么存储的。


学习内容:

首先,我们用数组存放一个数字,原理就是将每一位数,放在数组的一个位上。

eg:123,存放在数组a[3]中,就是a[0]=1,a[1]=2,a[2]=3。输出时再按位输出即可。

然后是对这些数字要进行运算。+-*/。加法和减法好说,只要对他们进行按位相加,逢十进一即可。减法同理。乘法的话,就用其中一个数组的每一位分别与另一个数组的每一位相乘,并且每一次都要控制进位,而除法相对复杂,且应用较少,就不在此进行讲解,感兴趣的朋友可以自行了解。


看一下今天的题目:

 2^{15} = 32768215 =32768,他的各位和是3 + 2 + 7 + 6 + 8 = 263+2+7+6+8=26。

输入nn,求2^{n}2n的各位和。

输入

第一行输入组数T, 接下来T行,每行一个整数n。(1 <= T <= 1000,1 <= N <= 1000)

输出

对于每组数据,输出一个数,表示2的n次方的各位和。

样本

输入输出
4
3
4
7
1000
8
7
11
1366

看到题目,2的1000次幂显然已经远远地超过了我们的数据范围,所以我们就要采用数组的方法进行求解。

其中主要包括的就是对数组进行相乘的系列操作,并对其以结构体的形式进行运算。

#include<bits/stdc++.h>
#define ll long long
#define N 50001
using namespace std;
struct node {
	int n;//代表数组长度也是数字的位数
	int a[N];//存储每一位
	node() {//对结构体的数据进行初始化
		n=0;
		int i;
		for(i=0; i<N; i++) a[i]=0;
	}
};
int main() {
	int t,i;
	scanf("%d",&t);
	while(t--) {
		int n,ans=0;
		scanf("%d",&n);
		node y;
		y.a[0]=1;
		y.n=1;
		while(n--) {
			for(i=0; i<y.n; i++) y.a[i]*=2;//每一位*2
			for(i=0; i<y.n; i++) {//逢十进一
				y.a[i+1]+=y.a[i]/10;
				y.a[i]=y.a[i]%10;
			}
			while(y.a[y.n]) {//对最高位进行逢十进一操作,直到为0
				y.a[y.n+1]+=y.a[y.n]/10;
				y.a[y.n]%=10;
				y.n++;
			}
		}
		for(int i=0; i<y.n; i++) ans+=y.a[i];//ans记录各位的相加和
		printf("%d\n",ans);
	}
	return 0;
}

 


每天坚持是一件很累的事,即使很慢,但也不要停止。由于过年,小编停更了几天,从今天开始,小编继续每日一题。欢迎大家及时督促,大家一起加油! 


大家记得点赞收藏,防止找不到哦。


欢迎大家订阅小编的每日一题专栏,会每天更新,都是用心准备的哦!

若有不同思路,欢迎评论区留言,看到必回,Goodnight!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在狼人杀游戏中,预言家是一个关键角色,他们的主要功能是为好人阵营提供验人信息,帮助好人阵营识别狼人。以下是一些分辨真假预言家的技巧: 1. **观察发言**:注意预言家的发言是否流畅、逻辑是否清晰。真正的预言家通常会有条理地分析情况,而假的预言家可能会在发言中显得犹豫不决或者逻辑混乱。 2. **验人结果**:真正的预言家在公布验人结果时,会有一定的心路历程,他们会解释为什么会验这个人,以及验人的结果是如何影响他们对游戏局势的判断的。 3. **警徽流和投票行为**:预言家在决定如何使用警徽票时,通常会有一个合理的解释。他们的投票行为也会更加谨慎,不会轻易跟风或任性投票。 4. **反应和情绪**:在游戏中,观察玩家的反应和情绪也是很重要的。真正的预言家在被质疑时可能会显得有些紧张,但他们会尽力维护自己的清白。而假的预言家可能会过度防御或者表现得过于冷静。 5. **玩家之间的互动**:有时候,玩家之间的互动可以透露出一些信息。例如,如果一个玩家在另一个玩家跳预言家后迅速认下对方,这可能是因为他们之间有默契,或者是真正的预言家在确认对方的身份。 6. **上警过程**:在面杀中,观察玩家从拿牌到上警的过程也是一个线索。通常,真正的预言家会在上警时表现出一定的自信和决断力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的代码no摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值