博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法之数学--同模余定理,最大公约数(GCD),最小公倍数(LCM)2021-03-07
阅读量:4100 次
发布时间:2019-05-25

本文共 2140 字,大约阅读时间需要 7 分钟。

1.同模余定理

求S(n)

题目描述

Time Limit: 1000 ms

Memory Limit: 256 mb
S(n)=n^5
求S(n)除以3的余数

输入描述:

每行输入一个整数n,(0 < n < 1000000)

处理到文件结束

输出描述:

输出S(n)%3的结果并换行

代码

#include 
int main() {
long long int n; while (scanf("%lld", &n) != EOF) {
long long int s = n; for (int i = 1; i < 5; i++) {
s = (n % 3)*(s % 3); } s = s % 3; printf("%lld\n", s); } return 0;}

大数取模

#include 
char s[1005];int main(){
int m,n;//m为输出值,n为模数 while(scanf("%d %d",&m,&n)){
for(int i=0;i

2. 最大公约数(GCD)

#include 
int gcd(int a,int b){
if (b == 0) return a; else return gcd(b,a%b);}int main(){
int x,y; cin>> x>>y; cout<
<

或者直接使用__gcd()

#include 
#include
#include
using namespace std;int main(){
int x,y; cin>> x>>y; cout<<__gcd(x,y)<

例题,最简真分数

题目描述

Time Limit: 1000 ms

Memory Limit: 32768 mb

给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。

输入描述:

每组包含n(n<=600)和n个数,整数大于1且小于等于1000。

输出描述:

每行输出最简真分数组合的个数。

代码

#include 
int gcd(int a,int b) {
if (b == 0) return a; else return gcd(b, a%b);}int a[605];int main() {
int n; while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d",&a[i]); } int sum = 0; for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n;j++) {
if (gcd(a[i], a[j]) == 1) sum++; } } printf("%d\n",sum); } return 0;}

最大公约数1

题目描述

Time Limit: 1000 ms

Memory Limit: 256 mb
读入n个正整数,求出这n个数的最小值、最大值以及它们两的最大公约数,并输出。输入中第一行为n,接下来为n个大于零的整数。

输入描述:

第一行为n。第二行是n个大于零的整数,用空格隔开。

输出描述:

分别输出最小值、最大值和它们两的最大公约数,用空格隔开。

代码

#include 
#include
#include
#include
#include
//#include
//#include
using namespace std;int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a%b);}int a[1005];int main() { int n; while (scanf("%d",&n)!=EOF) { for (int i = 0; i < n; i++) { scanf("%d",&a[i]); } sort(a,a+n); printf("%d %d %d",a[0],a[n-1],gcd(a[0],a[n-1])); } return 0;}

3.递归

例子

int sum(int x) {
if (x == 1) return 1; return x + sum(x-1);}int main() {
cout << sum(10) << endl; return 0;}

例子:斐波那契数列

转载地址:http://mpzsi.baihongyu.com/

你可能感兴趣的文章
C#中ColorDialog需点两次确定才会退出的问题
查看>>
16、Memento 备忘录模式
查看>>
Java基础篇(一)
查看>>
数据库
查看>>
mysql update与group by
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
python猜拳游戏
查看>>
python实现100以内自然数之和,偶数之和
查看>>
python数字逆序输出及多个print输出在同一行
查看>>
python九九乘法表(详解)
查看>>
ESP8266 WIFI数传 Pixhaw折腾笔记
查看>>
苏宁产品经理面经
查看>>
百度产品经理群面
查看>>
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>
vue 遍历对象并动态绑定在下拉列表中
查看>>
Vue动态生成el-checkbox点击无法选中的解决方法
查看>>
python __future__
查看>>
MySQL Tricks1
查看>>