摘要:
1 /* 2 本程序说明: 3 4 输入:方阵大小n,输出:n*n的旋转方阵 5 6 举例: 7 当n=2时,输出: 8 1 2 9 4 3 10 当n=4时,输出: 11 1 2 3 4 12 12 13 14 5 13 11 16 15 6 14 10 9 8 7 15 16 */ 17 #include... 阅读全文
摘要:
为适应于不同用途,将大数算法写成了两个版本,分别为只处理正整数的版本和包含负数处理的版本,可根据需要选用。 版本1:只能处理正整数 版本2:可处理正整数、0、负整数(STL编码风格) 为方便理解,特画出版本二的程序运行流程图(为图示清晰,省略了函数形参): 参考资料来源说明: 1、正整数版本,借鉴了 阅读全文
摘要:
普通版本(区别于大数版本),包含合法性检查 大数版本(这个版本适用性更广泛,需要处理负数的话另外加个flag即可),未加入合法性检查 再来一个针对大数的版本,而且直接在源进制和目标进制之间转换(不需要先转换为10进制),可以说是十分厉害。参考了http://blog.csdn.net/jaster_ 阅读全文
摘要:
附:素数筛法原理(具体出处记不得了,可以留言我补上) 【算法-ACM-素数】求素数的算法及其复杂度分析 关于搜寻一定范围内素数的算法及其复杂度分析 ——曾晓奇 关于素数的算法是信息学竞赛和程序设计竞赛中常考的数论知识,在这里我跟大家讲一下寻找一定范围内素数的几个算法。看了以后相信对大家一定有帮助。 阅读全文
摘要:
[编程题] 模时间限制:1秒空间限制:32768K给定四个正整数a,b,c,k,回答是否存在一个正整数n,使得a*n在k进制表示下的各位的数值之和模b为c。输入描述:第一行一个整数T(T <= 5,000)。接下来T行,每行四个正整数a,b,c,k(1 ≤ a ≤ 10^18; 2 ≤ k ≤ 10 阅读全文
摘要:
题目描述给出一个正整数n,我们把1..n在k进制下的表示连起来记为s(n,k),例如s(16,16)=123456789ABCDEF10, s(5,2)=11011100101。现在对于给定的n和字符串t,我们想知道是否存在一个k(2 ≤ k ≤ 16),使得t是s(n,k)的子串。输入描述:第一行 阅读全文
摘要:
这里积累一些日常编程用得比较少的知识,不断添加。 scanf("%c%*c%c",&a,&b); 其中的*表示跳过,本来输入三个数字,结果中间那个读入后被抛弃,a和b的值分别是第一次和第三次输入的值。 printf("%d%*d%d",a,b,c,d); 其中*表示占位,相当于printf("%d% 阅读全文
摘要:
进制转换的符号表为[0-9a-zA-Z],共61个字符,最大可表示62进制。 思路是原进制先转换为10进制,再转换到目标进制。 疑问: 对于负数,有小伙伴说可以直接将符号丢弃,按照整数进行进位转换,最后再将负号补回来,我认为这种做法是不对的。 正确的做法是:考虑好按照16位(short)还是32位( 阅读全文
摘要:
c++中常用的vector容器作为参数时,有三种传参方式,分别如下(为说明问题,用二维vector): function1(std::vector<std::vector<int> > vec),传值 function2(std::vector<std::vector<int> >& vec),传引 阅读全文
摘要:
这是爱奇艺的一道算法题。 题目描述请参考博客http://blog.csdn.net/sinat_30186009/article/details/52356053,在此表示感谢。 基本思路参考了以上文章,但是上面文章中的算法是java版,这是次要的,主要的问题是算法用的是原始递归思想,这样会造成计 阅读全文