
ACM
Aodongq1n丶
坐标:深圳
职业:从事云计算和互联网金融相关工作
WX:qpz2235440785
展开
-
[数学]为什么一个整数各个位数的和是3的倍数,这个整数就一定是3的倍数
一个整数abcdabcd = 1000a+100b+10c+d = 999a+99b+9c+a+b+c+d原创 2020-10-13 19:00:42 · 571 阅读 · 0 评论 -
KMP算法
#include <iostream>#include <cstring>int next[3] = {0};void getNext(const char* p){ int front = 1; int down = 0; int nCount = 0; next[0] = -1; int pl = strlen(p); while (front < pl) { std::cout <.原创 2020-08-19 20:49:35 · 129 阅读 · 0 评论 -
求A^B的最后三位数
题目求A^B的最后三位数解法首先需要知道一个公式:( a * b ) % c = ( ( a % c ) * ( b % c ) ) % c为什么需要这个公式?a*b的结果可能出现溢出,所以取模之后的不会了快速幂解法的结论:一个数的n次幂=一个数奇数幂时的底数的乘积,例如:3.下面来看,具体解法:...原创 2020-01-16 12:02:59 · 1953 阅读 · 0 评论 -
OJ题目--数字整除
NAOJ664原创 2017-12-22 00:15:10 · 721 阅读 · 0 评论 -
如何不用比较符号比较2个数的大小
方法一 int flip(int a) { return a^1; } int sign(int a) { //正数和0返回1,负数返回0 reiturn ((a>>31)+1); } int getmax(int a,int b) { int c =原创 2018-01-13 22:56:16 · 994 阅读 · 0 评论 -
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
前几天在牛客网上面做了这道题,以前曾经看过这道题目的优化算法,但是限制的条件没有这么多,可能人们先想到这道题,都是会用for,while这样的循环来做,这样的做法就是最一般的做法。那次看这道题目时,那篇文章的作者是想告诉读者,如果可以采用公式的话,尽量采用公式,所以我理所当然的采用了高斯公式求解,我擦,在线提交竟然通过了,高斯公式的答案就是:sum=(1+n)*n/2,但是这样的做法使用了乘除,不原创 2015-06-14 14:24:11 · 767 阅读 · 0 评论 -
中缀表达式转化为后缀表达式
题目:中缀表达式转化为后缀表达式例如:1+(2-3)*4+7/5 -----> 123-4*+75/+思路分析:1、首先要清楚中缀表达式转化我后缀表达式的规则:1)遇到数字输出,否则进栈。2)遇到有右括号匹配栈里的左括号,输出栈里的内容3)遇到比自己比栈里的运算符优先级高,入栈4)遇到比自己比栈里的运算符优先级低,将栈里的运算符出栈代码#include <i...原创 2018-04-02 11:01:23 · 398 阅读 · 1 评论 -
爬楼梯问题的2种解法(递归+记忆化搜索)
问题描述:一个楼梯有N节,每次只能走1步或者2步,请问走完N节楼梯有几种走法?解法:#include <stdio.h>//递归解法int fun1(int n){ if(n==1||n==2) return n; return fun1(n-1)+fun1(n-2);}//记忆化搜索解法int fun2(int n){...原创 2018-04-06 11:42:14 · 1136 阅读 · 0 评论