前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【HBUOJ】暴躁的阿生

【HBUOJ】暴躁的阿生

作者头像
韩旭051
发布2019-11-08 09:40:01
2900
发布2019-11-08 09:40:01
举报
文章被收录于专栏:刷题笔记刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/100562555

暴躁的阿生

Description

阿生最近迷上了解数学题,其中有一道题是这样的:

图片.png
图片.png

,对于给定的q,n,p,需要计算S的值,阿生无论如何也解不出来,这导致阿生内心极其崩溃。为了防止阿生做出出格的举动,大家快帮帮他吧

Input

输入包含三个整数,q,n,p 1<= q,n,p <=10^9;

Output

输出S的值

Sample Input 1

代码语言:javascript
复制
2 3 100

Sample Output 1

代码语言:javascript
复制
14

Sample Input 2

代码语言:javascript
复制
511 4 520

Sample Output 2

代码语言:javascript
复制
184

又是一道因为没有人AC而降低测试点的题?

求幂有一个 快速幂的算法,我只是知道,但我不会写

我直接就粘贴过来模板了

int quickPow(int a,int b,int m){ int sum=1; while(b){ if(b&1) sum=sum*a%m; b>>=1; a=a*a%m; } return sum; }

AC答案

代码语言:javascript
复制
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,m;
int quickPow(int a,int b,int m){
    int sum=1;
    while(b){
        if(b&1) sum=sum*a%m;
        b>>=1;
        a=a*a%m;
    }
    return sum;
}
int main(){
    scanf("%d%d%d",&a,&b,&m);
    int sum=0;
    for(int i=1;i<=b;i++){
    	sum+=quickPow(a,i,m);
    	//cout<<sum;
	}
    printf("%d\n",sum%m);
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 暴躁的阿生
  • 又是一道因为没有人AC而降低测试点的题?
  • 求幂有一个 快速幂的算法,我只是知道,但我不会写
  • 我直接就粘贴过来模板了
  • AC答案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档