2016年5月14日

Modular Multiplicative Inverse(模乘逆元)

摘要: 计算模乘逆元原理上有四种方法:1.暴力算法2.扩展欧几里得算法3.费尔马小定理4.欧拉定理模乘逆元定义:满足 ab≡1(mod m),称b为a模乘逆元。以下是有关概念以及四种方法及程序。文章出处:Modular Multiplicative InverseThe mo... 阅读全文

posted @ 2016-05-14 20:34 海岛Blog 阅读(658) 评论(0) 推荐(0)

HDU1222 Wolf and Rabbit

摘要: 问题链接:HDU1222 Wolf and Rabbit。问题描述:参见上文。问题分析:对于输入的m,可以看作是狼的步伐。对于输入的n,用0到n-1围成一圈。如果m和n有最大公约数(非1),则有一些标号的洞坑狼永远到达不了,兔子有洞坑可以躲,是安全的;如果m和n没有最... 阅读全文

posted @ 2016-05-14 16:21 海岛Blog 阅读(191) 评论(0) 推荐(0)

B00006 函数itoa()

摘要: 这是一个通用的基础程序,将整型数转换为数字字符串。其中需要用到字符串逆序转换函数reverse()。该程序来自K&C的《C程序设计语言》一书。程序如下:/* itoa 带符号的整数转换字符串 */#include #include void reverse(char ... 阅读全文

posted @ 2016-05-14 01:02 海岛Blog 阅读(295) 评论(0) 推荐(0)

B00005 函数atoi()(去空格,带符号)

摘要: 这是一个通用的基础程序,将数字字符串转换为整型数。这个程序会去掉字符串开始的空格,并且能够转换带符号的整数。该程序来自K&C的《C程序设计语言》一书。程序如下:/* 带符号的atoi,跳过前面的空格 */#include #include int atoi(char ... 阅读全文

posted @ 2016-05-14 00:49 海岛Blog 阅读(551) 评论(0) 推荐(0)

2016年5月12日

I00013 鸡兔同笼

摘要: 这是《孙子算经》卷下中的第31题。今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?答曰:雉二十三。兔一十二。初学者通常用穷举法来解这种问题,即把所有可能都试一遍,找出满足条件的解。即便是使用穷举法,也需要把程序编得具有一定的通用性,比如说头或脚的数量变了程序也... 阅读全文

posted @ 2016-05-12 20:53 海岛Blog 阅读(193) 评论(0) 推荐(0)

I00012 打印三位数的水仙花数及其个数

摘要: 各个位数的立方数之和等于数本身的数,称为水仙花数。这里使用穷举法打印3位数的水仙花数。程序的关键是如何取出给定数的各个位的值。另外需要注意的一点是,求和变量的初值是零。乘积变量的初值则为1。程序如下:/* 打印三位数的水仙花数及其个数 */#include int m... 阅读全文

posted @ 2016-05-12 20:08 海岛Blog 阅读(199) 评论(0) 推荐(0)

I00011 打印包含7的三位数

摘要: 一个三位数,通常指100至999的数。要打印包含7的三位数,只需要对所有的数做一个判定即可,也就是穷举法。这个程序的关键是如何取出第一位数字,第二位数字和第三位数字。程序如下:/* 打印包含7的三位数 */#include int main(void){ int... 阅读全文

posted @ 2016-05-12 19:42 海岛Blog 阅读(150) 评论(0) 推荐(0)

2016年5月9日

Eratosthenes筛选法(C++版)

摘要: Sieve of Eratosthenes使用埃拉托斯特尼筛选法计算小于100000的素数。埃拉托斯特尼筛选法是最为知名的产生素数的筛选法,适用于产生最小的N个素数。该方法的唯一缺点是使用的存储空间大,可以进一步改进。另外,该算法也不适用于计算某个范围内的全部素数。C... 阅读全文

posted @ 2016-05-09 10:43 海岛Blog 阅读(497) 评论(0) 推荐(0)

HDU5620 KK's Steel(C++语言版)

摘要: 问题链接:HDU5620 KK's Steel。问题描述:参见上文。问题分析:刚读到题,有点难解,没有头绪。看了暗示才明白点,有点像菲波拉契数列,不过每一项求的是数列到该项之和。另外略有不同的是,第1项是1,第2项是2。也许是为了三个钢管围起来不能成为三角形的原因。既... 阅读全文

posted @ 2016-05-09 10:09 海岛Blog 阅读(123) 评论(0) 推荐(0)

HDU5620 KK's Steel(C语言版)

摘要: 问题链接:HDU5620 KK's Steel。问题描述:参见上文。问题分析:刚读到题,有点难解,没有头绪。看了暗示才明白点,有点像菲波拉契数列,不过每一项求的是数列到该项之和。另外略有不同的是,第1项是1,第2项是2。也许是为了三个钢管围起来不能成为三角形的原因。既... 阅读全文

posted @ 2016-05-09 10:02 海岛Blog 阅读(182) 评论(0) 推荐(0)

大整数分解算法

摘要: 重读维基百科整理。特殊分解算法:试除法(Trial division)轮式因子分解法(Wheel factorization)Pollard's rho算法(Pollard's rho algorithm)代数群因子分解算法(Algebraic-group facto... 阅读全文

posted @ 2016-05-09 01:39 海岛Blog 阅读(1191) 评论(0) 推荐(1)

大整数分解算法

摘要: 重读维基百科整理。特殊分解算法:试除法(Trial division)轮式因子分解法(Wheel factorization)Pollard's rho算法(Pollard's rho algorithm)代数群因子分解算法(Algebraic-group facto... 阅读全文

posted @ 2016-05-09 01:39 海岛Blog 阅读(2608) 评论(0) 推荐(0)

2016年5月8日

HDU1319 POJ1595 UVA406 UVALive5490 ZOJ1312 Prime Cuts【素数筛选+打表】

摘要: Prime CutsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 11505 Accepted: 4373DescriptionA prime number is a counting number... 阅读全文

posted @ 2016-05-08 18:12 海岛Blog 阅读(286) 评论(0) 推荐(0)

HDU1106 排序

摘要: 问题链接:HDU1106 排序。问题简述:参见上述链接。问题分析:这个程序的逻辑并不十分复杂,主要是字符串处理和数字字符串转整数的问题。程序说明:转换后的整数需要排序,但这不是重点。排序使用库函数qsort()来实现。因为5被看作空格,需要注意的点有:1.开始的若干个... 阅读全文

posted @ 2016-05-08 09:05 海岛Blog 阅读(129) 评论(0) 推荐(0)

B00004 atoi函数

摘要: 这是一个通用的基础程序,将数字字符串转换为整型数。程序如下:/* atoi函数:将字符串s转换为相应的整型数 */#include #include int atoi(char s[]){ int i, n; n = 0; for(i=0; isdi... 阅读全文

posted @ 2016-05-08 06:26 海岛Blog 阅读(123) 评论(0) 推荐(0)

B00004 atoi函数

摘要: 这是一个通用的基础程序,将数字字符串转换为整型数。程序如下:/* atoi函数:将字符串s转换为相应的整型数 */#include #include int atoi(char s[]){ int i, n; n = 0; for(i=0; isdi... 阅读全文

posted @ 2016-05-08 06:26 海岛Blog 阅读(148) 评论(0) 推荐(0)

HDU1262 寻找素数对

摘要: 问题链接:HDU1262 寻找素数对问题简述:参见上述链接。问题分析:对于输入的偶数,先求得其一半的值,若不为奇数则减去1,然后从这个奇数开始从大到小用奇数试探。根据哥德巴赫猜想,一个偶数可以分解为两个素数之和,其中一个必然小于或等于这个偶数的一半。有了上述的一个奇数... 阅读全文

posted @ 2016-05-08 02:53 海岛Blog 阅读(114) 评论(0) 推荐(0)

HDU1262 寻找素数对

摘要: 问题链接:HDU1262 寻找素数对问题简述:参见上述链接。问题分析:对于输入的偶数,先求得其一半的值,若不为奇数则减去1,然后从这个奇数开始从大到小用奇数试探。根据哥德巴赫猜想,一个偶数可以分解为两个素数之和,其中一个必然小于或等于这个偶数的一半。有了上述的一个奇数... 阅读全文

posted @ 2016-05-08 02:53 海岛Blog 阅读(114) 评论(0) 推荐(0)

HDU1282 回文数猜想

摘要: 问题链接:HDU1282 回文数猜想。问题简述:参见上述链接。问题分析:这个问题相对就比较简单,需要知道如何判断一个数是否是回文数,加上会控制输入输出即可。程序中用了一个小技巧,判断是否为回文数的函数中,反正都要算逆序数,那就作为一个参数变量的返回值利用一下。不过,根... 阅读全文

posted @ 2016-05-08 00:35 海岛Blog 阅读(98) 评论(0) 推荐(0)

HDU1282 回文数猜想

摘要: 问题链接:HDU1282 回文数猜想。问题简述:参见上述链接。问题分析:这个问题相对就比较简单,需要知道如何判断一个数是否是回文数,加上会控制输入输出即可。程序中用了一个小技巧,判断是否为回文数的函数中,反正都要算逆序数,那就作为一个参数变量的返回值利用一下。不过,根... 阅读全文

posted @ 2016-05-08 00:35 海岛Blog 阅读(127) 评论(0) 推荐(0)

2016年5月7日

HDU1431 素数回文

摘要: 问题链接:HDU1431 素数回文。问题简述:参见上述链接。问题分析:看似比较简单的问题,实际上需要一个过程来解决,否则不是时间出问题,就是空间出问题。首先,需要编写一个程序,计算1到100000000之间的回文素数,得到两个值。一是这个区间的最大回文素数是99898... 阅读全文

posted @ 2016-05-07 23:44 海岛Blog 阅读(116) 评论(0) 推荐(0)

HDU1431 素数回文

摘要: 问题链接:HDU1431 素数回文。问题简述:参见上述链接。问题分析:看似比较简单的问题,实际上需要一个过程来解决,否则不是时间出问题,就是空间出问题。首先,需要编写一个程序,计算1到100000000之间的回文素数,得到两个值。一是这个区间的最大回文素数是99898... 阅读全文

posted @ 2016-05-07 23:44 海岛Blog 阅读(253) 评论(0) 推荐(0)

2016年5月6日

I00010 打印1到输入数之间的回文数

摘要: 对于一个数,要判定它是否是回文数,直观的做法是先判定其最高位(首位)与最低位(最后一位)是否相同,如果不同则不是回文数;如果相同则其掉其做高位和最低位,对剩余的位继续进行判定;如果剩余的位只有一位或零位(即整个数是偶数位)则为回文数。本程序就是基于这样的基本思想进行计... 阅读全文

posted @ 2016-05-06 23:39 海岛Blog 阅读(208) 评论(0) 推荐(0)

I00010 打印1到输入数之间的回文数

摘要: 对于一个数,要判定它是否是回文数,直观的做法是先判定其最高位(首位)与最低位(最后一位)是否相同,如果不同则不是回文数;如果相同则其掉其做高位和最低位,对剩余的位继续进行判定;如果剩余的位只有一位或零位(即整个数是偶数位)则为回文数。本程序就是基于这样的基本思想进行计... 阅读全文

posted @ 2016-05-06 23:39 海岛Blog 阅读(184) 评论(0) 推荐(0)

2016年5月2日

I00009 用1生成回文数

摘要: 这是数学之美系列的一个程序。用1生成回文数是一种办法,1个1到9个1的平方都是回文数,10个1的平方就不是了。程序如下:/* 用1生成回文数 */#include int main(void){ long g=1; int i; for(i=1; i... 阅读全文

posted @ 2016-05-02 10:39 海岛Blog 阅读(137) 评论(0) 推荐(0)

导航