
数学问题
Jeniclala
这个作者很懒,什么都没留下…
展开
-
数学:约瑟夫环:圆圈中最后剩下的数字
解题思路 以题目给的代码为例0、1、2、3、4 ,n=5,m=3 第一轮:0 1 2 3 4 0 1 2 3 4,删除2,此时3的下标为(0 + 3) % 5 = 3 第二轮:3 4 0 1 3 4 0 1,删除0,此时3的下标为(1 + 3) % 4 = 0 第三轮:1 3 4 1 3 4,删除4,此时3的下标为(1 + 3) % 3 = 1 第四轮:1 3 1 3,删除1,此时3的下标为(0 + 3) % 2 = 1 第五轮:3,此时3的下标为0 倒着就可以推出规律为pos=(pos+m)%n 时间复.原创 2021-08-09 15:36:30 · 136 阅读 · 0 评论 -
JavaScript 数学:二进制中1的个数
参考链接https://www.cnblogs.com/echovic/p/6430668.html 描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 示例1 输入:10 返回值:2 思路一: 如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响; 例如:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三原创 2021-06-19 21:57:30 · 350 阅读 · 0 评论 -
数学:求1+2+3+...+n
描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例1 输入:5 返回值:15 function Sum_Solution(n){ return n*(1+n)/2; } function Sum_Solution(n) { if(n === 1) return 1; return n && n + Sum_Solution(n - 1); } 注意:这里retu原创 2021-06-18 10:10:12 · 323 阅读 · 0 评论 -
数学 :数组中7的倍数及包含7的值的个数
描述:输出数组中7的倍数及包含7的值的个数 输入:17 14 22 输出:2 思路:7的倍数利用取余,包含7利用字符串 function test(line){ let lines=line.split(' ');//分解为字符串数组 let res=0; for(let i=0;i<lines.length;i++){ if(parseInt(lines[i])%7===0||lines[i].indexOf('7')!=-1){//注意要将字符串数组中的值转原创 2021-06-18 08:30:45 · 875 阅读 · 0 评论 -
数学专题-素数筛法
输入:一个数 输出:1到这个数范围内个位为1的所有素数 #include<iostream> using namespace std; int prime[10000]; int primeSize; bool mark[10001]; void init(){ for(int i=1;i<=10000;i++){ mark[i]=false; } primeSize=...原创 2019-06-24 21:46:50 · 76 阅读 · 0 评论 -
数学专题-简易素数判定
输入:一个数 输出是否为素数,yes 或no #include<iostream> #include<cstdio> #include<cmath> using namespace std; bool judge(int x){ if(x<=1) return false; int bound=(int)sqrt(x)+1; for(int i=2;...原创 2019-06-24 21:12:51 · 70 阅读 · 0 评论 -
数学专题-进制转换
输入:进制(1<m<10) 需要转换的数 输出:转换后的数 #include<iostream> using namespace std; int main(){ int m; while(cin>>m){ if(m==0) break; long long a; cin>>a; int ans[50],size=0; ...原创 2019-06-22 15:00:52 · 87 阅读 · 0 评论 -
数学专题-特殊乘法
输入:两个数 输出:位数分别相乘 例:输入123 45 输出:54 14+15+24+25+34+35=54 投机取巧法 #include<iostream> using namespace std; int main(){ char a[11],b[11]; while(cin>>a>>b){ int ans=0; for(int i=0;a[i]...原创 2019-06-22 14:36:30 · 111 阅读 · 0 评论 -
数学专题-高精度乘法——N的阶乘
输入:一个数 输出:这个数的阶乘 #include<iostream> #include<cstdio> #include<cstring> using namespace std; struct bigInteger{ int digit[1000]; int size; void init(){ for(int i=0;i<1000;i++)...原创 2019-06-25 16:27:33 · 198 阅读 · 0 评论 -
数学专题-高精度整数加法
输入:两个大整数 输出:和 #include<iostream> #include<cstdio> #include<cstring> using namespace std; struct bigInteger{ int digit[1000]; int size; void init(){ for(int i=0;i<1000;i++) ...原创 2019-06-25 15:30:13 · 90 阅读 · 0 评论