算法学习系列2.1
来源:互联网 发布:国外视频软件 编辑:程序博客网 时间:2024/06/05 04:10
均采用C++通过。
1、子序列的和,多组数据输入 n< m<10^6,输出1/n^2+1/(n+1)^2+…+1/m^2,结束标记为m=n=0
void subsequence(){
long n[5],m[5];int k,i,j;//控制输入,这儿最多输入5组数据,学艺不精啊for(k = 0;k<5;k++){ scanf("%ld%ld",&n[k],&m[k]); if(! (n[k]) && ! (m[k]) ) break;}//计算相应值,但注意超出范围。for(i =0;i<k;i++){ long double sum = 0; for(j = n[i];j<=m[i];j++){ sum += 1.0/(long double)(j*j); } printf("%.5lf\n",sum);}
}
2、将1,2…9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出,输出所有满足条件的数
void choise(int *a,int n){
int i,j,k,temp;for(i=0;i<n-1;i++) { k=i; //给记号赋值 for(j=i+1;j<n;j++) if(a[k]>a[j]) k=j; //是k总是指向最小元素 if(i!=k) { //当k!=i是才交换,否则a[i ] 即为最小 temp=a[i]; a[i]=a[k]; a[k]=temp; }}
}
void permutation(){
//分析得最小一个组合的数的取值范围为123到333,看的网上的,我可没有分析出来啊。智商不够 //用[m9]来装a,b,c得到数据 int m[9]; int copy,flag = 1;//flag 相等标记 for(int a=123; a<=333; a++){ int b = 2*a; int c = 3*a; //将abc个位,十位,百位分出来,这儿是倒序,不影响 for(int k= 0;k<3;k++){ switch(k) { case 0: copy =a;break; case 1: copy =b;break; case 2: copy =c;break; } for(int i=0;i<3;i++){ if(i) copy = copy / 10; m[i+3*k] = copy%10; } } //排序,这儿可以不排序,直接看有没有相等 choise(&m[0],9); //判断是否相等 for(int n= 0;n<8;n++){ if(m[n]== m[n+1]|| !m[n]) flag =0; } if(flag) printf("%d %d %d\n",a,b,c); flag = 1; }
}
3、有编号1~n个灯泡,起初所有的灯都是灭的。有k个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。
现在开始按开关。
第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,……n)。
第2个同学,隔一个灯按一次(按开关灯的编号: 2,4,6,……)。
第3个同学,隔两个灯按一次(按开关灯的编号: 3,6,9,……)。求最后亮着的灯,输入n,k
如输入7 3,输出1 5 6 7void switch_light(){
for(int l = 0;l<1010;l++) a[l] = 1;//memset(a,1,sizeof(a));//将编号全赋值为0,1表示开灯,-1表示关灯int n,k;//n<=k<=1000scanf("%d%d",&n,&k);for(int i =2;i<=k;i++){ //i控制第几个人 for(int j=1;j<=n;j++){ //j控制灯开关 if(j*i>n)break; a[j*i] =a[j*i] *(-1); }}for(int m = 1;m<=n;m++){ if(a[m]==1) printf("%d\t",m);}
}
阅读全文
0 0
- 算法学习系列2.1
- 算法学习系列1.1
- 算法学习系列1.2
- 算法学习系列2.2
- 算法学习系列2.3
- 算法学习系列-快速排序
- 【机器学习系列】EM算法
- 插入排序(算法学习系列)
- 排序算法学习系列(一)
- 机器学习系列----KNN算法
- 机器学习--神经网络算法系列--BackPropagation算法
- 虚拟机学习系列 - 3 - 垃圾收集算法
- 机器学习笔试面试系列算法集锦
- Python学习系列1:KNN算法
- 链接分析算法系列-机器学习排序
- 机器学习笔试面试系列算法集锦
- opencv学习系列(七)--- 细化算法
- 机器学习笔试面试系列算法集锦
- 20171024
- XML学习05-Java中SAX方式解析XML文件
- 腾讯内推面试基本情况
- 排列组合 概率 贝叶斯理解
- Linux系统下脚本对虚拟机的安装重置
- 算法学习系列2.1
- Linux 下的mysql安装配置
- Open CV 学习开发笔记之图像的输入、输出(二)
- vscode列选择 快速选择
- 数据库中Select For update语句的解析
- 聊聊Linux fork多进程并发服务器模型
- 跨域解决方案
- OpenSL ES
- python学习记录(三)