题解列表

筛选

分类讨论问题

#由于输入过大,使用常规的input会超时importsysdata=sys.stdin.read().split()T=int(data[0])p=1N=int(2e5+5)whileT>0:T-=1n,k=int(data[p]),int(data[p+1])p+=2lt=[0]*Nforiinr

利用递归求解

解题思路:n=0,S0=0n=1,S1=2*1n=2,S2=2*1+2*11n=3,S3=2*1+2*11+2*111n=4,S4=2*1+2*11+2*111+2*1111n=n,Sn=2*1+2*11+2*111+2*1111+2*(pow(10,

利用递归求解

解题思路:依次写出求前n项整数和、求平方和和求倒数和的函数,然后在主函数将对应的部分累加,最后再将三个求和的部分再相加即可注意事项:注意精度,为防止丢失精度,主函数里增加一个变量total并将其设置为double型参考代码:#includeusingnamespacest

辗转相除法

摘要:解题思路:辗转相除法注意事项:注意变量的值的变化参考代码:/*从小到大输入两个整数,求最大公约数和最小公倍数求m,n的最大公约数(辗转相除法)1)求 m%n=c2)若c=0,则除数n为两个……

使用循环嵌套解决

解题思路:从整数1一直遍历到n,依次判断1到n内有多少个完数,根据完数的定义求解注意事项:注意格式控制符,很容易在这里出错参考代码:#includeusingnamespacestd;intmain(){intn;cin>>n;for(inti=1;i<=n;i++){v

利用递归求解

解题思路:使用递归,找到各项分母与分子之间的规律求解注意事项:递归调用的时候注意一定要保证p[n-1]和q[n-1]在计算当前项前已初始化,不然可能导致潜在未定义行为。参考代码:/*正确代码:*/#includeusingnamespacestd;vector

简单粗暴的写法

解题思路:从第一个数开始依次与后面的每一个数进行比较,在每次比较的时候都把较小的数放在前面注意事项:可以试着理解代码每一步的执行过程,可以手动模拟帮助理解参考代码:#includeusingnamespacestd;//678910//6voidsort_select(i

使用二维数组求解

解题思路:定义一个3乘3的二维数组,然后理清楚每个数的坐标,分别计算两条对角线上的数之和注意事项:注意数组下标从0开始参考代码:#includeusingnamespacestd;intmain(){inta[3][3];for(inti=0;i<3;i++)for(in