首页 > 其他分享 >__int128

__int128

时间:2024-07-08 18:41:28浏览次数:21  
标签:__ ch read write while int128

目录

简介

\(\_\_int 128\)并不是标准c/c++中的数据类型,而是一些特定编译器如gcc/g++提供的扩展数据类型。

支持运算

\(\_\_int128\)的是有符号128位整数变量,最多表示39位整数。
支持基本的加减乘除运算,以及按位与&、按位或|、按位异或^、左移<<、右移>>

输入输出

没有实现输入、输出,因此需要自己手动输入输出。

输入

__int128 read()
{
	__int128 x=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')	w=-w;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
	return w*x;
}

输出

void write(__int128 x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>9)	write(x/10);
	putchar(x%10+'0');
}

例题

例题
华华教月月做数学
快速幂+__int128就可以过掉这道题目

#include <bits/stdc++.h>
using namespace std;

__int128 read()
{
    __int128 x=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')    w=-w;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x*w;
}

void write(__int128 x)
{
    if(x<0)
    {
        putchar('-');
        x=-x;
    }
    if(x>9)    write(x/10);
    putchar(x%10+'0');
}

__int128 qpow(__int128 a, __int128 b, __int128 p)
{
    __int128 res=1;
    while(b)
    {
        if(b&1)    res=res%p*a%p;
        a=a%p*a%p;
        b>>=1;
    }
    return res;
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        __int128 a=read(),b=read(),p=read();
        write(qpow(a,b,p));
        puts("");
    }
}

标签:__,ch,read,write,while,int128
From: https://www.cnblogs.com/cxy8/p/18290474

相关文章

  • 全网最全EdgeMesh Q&A手册
    https://zhuanlan.zhihu.com/p/585749690   全网最全EdgeMeshQ&A手册转载请注明出处本人信息如下,有任何问题请联系我:github链接:Poorunga-Overview邮箱:[email protected]前言重要的事情1说三遍:定位问题前先看edgemesh-agent日志!定位问题前先看edgemesh-agent日志!定位......
  • Apispec,一个用于生成 OpenAPI(Swagger)规范的 Python 库
    目录01什么是Apispec?          为什么选择Apispec?安装与配置02Apispec的基本用法        生成简单的API文档1、创建Apispec实例2、定义API路由和视图3、添加路径到Apispec集成Flask和Apispec1、安装Flask和Flask-......
  • Python排序,你用对了吗?一文教你sorted和sort的正确姿势!
    目录1、sorted基础用法......
  • Altair携手奇瑞汽车,荣获2024世界人工智能大会“AI赋能新型工业化创新应用优秀案例”
    2024年7月4-7日,2024世界人工智能大会(WAIC)在上海世博中心成功举办。4日下午,“AI赋工业,数智启未来—人工智能赋能新型工业化主题论坛”在上海世博中心召开。Altair携手奇瑞汽车股份有限公司申报的“基于AI的降阶建模实现新能源汽车高低温续航高效集成仿真”案例在本次大会中......
  • 前端面试题30(闭包和作用域链的关系)
    闭包和作用域链在JavaScript中是紧密相关的两个概念,理解它们之间的关系对于深入掌握JavaScript的执行机制至关重要。作用域链作用域链是一个链接列表,它包含了当前执行上下文的所有父级执行上下文的变量对象。每当函数被调用时,JavaScript引擎会创建一个新的执行上下文,其中......
  • Linux-网络安全私房菜
    目录前言入门基本指令篇章man帮助手册字符集设置cdlsdatemkdirtouch-d-m修改主机名rmshredrename重命名mv移动tar打包与压缩打包但是不压缩打包且压缩更新包文件解压对应的包zip压缩文件命令cat查看显示行号交互写入(追加)显示空行more和lesshead和tailheadtail(能够实时监测内容)-......
  • 前端面试题29(js闭包和主要用途)
    JavaScript中的闭包是一个非常强大的特性,它允许一个函数访问并操作其词法作用域之外的变量。闭包的形成主要依赖于函数的作用域链,即函数可以访问在其外部定义的变量,即使外部函数已经执行完毕。下面我会通过几个方面来帮助你理解闭包的概念:闭包的定义闭包是一个函数及其......
  • Linux应急响应——知攻善防应急靶场-Linux(1)
    目录查看history历史指令查看开机自启动项异常连接和端口异常进程定时任务异常服务日志分析账户排查总结靶场出处是知攻善防Linux应急响应靶机1前景需要:小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我!!挑战内容:黑客的IP地址遗留下的三个flag开机后桌面找到......
  • 前端面试题28(Vue3的Teleport功能在什么场景下特别有用?能给个例子吗?)
    Vue3的Teleport功能在需要将组件的渲染结果放置在DOM树中与当前组件位置无关的任意位置时特别有用。这通常涉及到需要将某些UI元素(如模态框、弹出菜单、通知、工具提示等)从其逻辑上的父级组件中“提取”出来,放置到页面的更高层级或完全不同的位置,以避免样式冲突或层......
  • Caterpillar on a Tree
    首先一个很显然的地方就是使用传送门肯定是在叶子节点使用,我们来考虑一下整个过程是怎么样的为了方便,我们不妨假设可以传送回根节点\(k+1\)次,然后要求最后回到根节点我们先从根节点走到某一个叶子结点,然后再从这个叶子节点走到另一个叶子节点,然后继续走到另一个叶子节点,一直这么......