模重复平方计算法
2015-11-14 13:52
323 查看
本人用了容器:queue存放一个整数的二进制形式,然后用迭代依次访问元素。本人重写了求余,为了产生的余数为正数。
头文件:模重复平法.h
cpp文件:模重复平方计算法.cpp
头文件:模重复平法.h
#include<iostream> #include<queue> using namespace std; int Mod(int a ,int b) //求模 { while(a<0) { a +=b; } return a%b; } void Binary_queue(queue<int>&q , int n) //将数字转换成二进制,然后写进队列 { int yu; while( n / 2 != 1) { yu = n % 2; q.push(yu); n = n / 2; } yu=n%2; q.push(yu); q.push(1); } int Result(queue<int>&q ,int b ,int m) //计算模重复平方的结果 { int a=1; while( q.size() != 0 ) { int t=q.front(); q.pop(); if( t ==1 ) { a= Mod(a * b , m) ; b= Mod(b * b , m); } else { b=Mod( b * b , m); } } return a; }
cpp文件:模重复平方计算法.cpp
#include"模重复平方.h" int main() { queue<int> q; int n,b,m; cout<<"请输入指数:n="; cin>>n; cout<<"请输入底数:b="; cin>>b; cout<<"请输入模:mod="; cin>>m; Binary_queue(q,n); cout<<"结果为:"<<Result(q,b,m)<<endl; }
相关文章推荐
- 堆(heap)和栈(stack)有什么区别?
- led 驱动程序测试
- NOIP2015TG记
- VM虚拟机快速安装LAMP后的配置
- 学习Python:做数据科学还是网站开发?
- 线程和线程池的相关问题记录
- 《项目管理艺术》第十至十六章读书摘要
- 编程基础知识之编程哲学
- 在Linux系统下搭建Java编程操练环境
- java多态与异常处理——动手动脑
- TEXTMETRICW 结构记录
- Linux下软件开发RPC框架
- 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
- 【用colspan,rowspan属性上下合并单元格,cellspacing,cellpadding设置间距】
- Card Game Cheater
- A+B Again
- 普法知识(2):法律保护弱势群体
- 秒杀多线程第一篇 多线程笔试面试题汇总 http://blog.csdn.net/morewindows/article/details/7392749
- STS怎么创建一个springMVC的Maven项目
- 01分数规划(转)