【第二次作业】
来源:互联网 发布:淘宝电商是什么 编辑:程序博客网 时间:2024/05/17 22:08
第一题:
P1-1:递归写法,效率低
#include <stdio.h>/*1. 写一个函数返回参数值为1的个数比如:15 0000 1111 4个1程序原型:int count_one_bits(unsigned int value){//返回1的位数}*/int fuc(int x){if(x!=0){if(x%2==1){return 1+fuc(x/2);}else {return fuc(x/2);}}return 0;}void mainp1(){int num;num=fuc(234);printf("%d\n",num);}
P1-2:while写法,一直除到n为0
#include <stdio.h>int fuc(int x){int count =0;//x=x&(x-1)while(x!=0){if(x%2==1)count++;x/=2;}return count;}void main(){printf("%d\n",fuc(100));}
P1-3:与运算,有多少个1就运行几次。效率最高
#include <stdio.h>int fuc(int x){int count=0;while(x!=0){count++;x=x&(x-1);}return count;}void main(){printf("%d\n",fuc(521));}
第二题:
#include <stdio.h>#include <math.h>//2. 求100~200之间的素数int fuc(int x) //是素数就return1{int count=2;if (x%2==0)return 0;else if(x%2!=0){while(count<=sqrt(x)){if(x%count==0)return 0;count++;}}return 1;}void main(){int num=100;for(num;num<=200;num++)if(fuc(num)==1)printf("%d ",num);printf("\n");}
第三题:
#include <stdio.h>//3. 输出乘法口诀表void main(){int i,l;for(i=1;i<=9;i++){for (l=1;l<=i;l++)printf("%d*%d=%d ",i,l,i*l);printf("\n");}}
第四题:
#include <stdio.h>////4.不允许创建临时变量,交换两个数的内容 void main(){int a=10,b=20;a=a+b;b=a-b;a=a-b;printf("%d %d\n",a,b);}
第五题:
#include <stdio.h>//5. 求10个数中最大值。void main(){int ar[]={23,13,56,2,89,100,54,6,3,540};int i=0;int n=(sizeof(ar)/sizeof(*ar));int max=ar[0];for(i;i<n;i++){if(ar[i]>max)max=ar[i];}printf("MAX:%d",max);}
0 0
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业~~~~~
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- 第二次作业
- Spark SQL之External DataSource外部数据源(一)示例
- 炸弹
- Combination Sum求和为给定值的所有序列的解题思路
- 分布式系统阅读笔记(三)-----计算机网络和网络互连技术
- 离散时间序列的内插算法(sinc 函数内插)
- 【第二次作业】
- MTK 软件设置路径
- 第十七周项目2-引用做形参(2)
- Emacs常用命令快速参考
- javabean内省
- python命令行解析
- 凌晨两点的火车啊
- Oracle Merge 使用
- 黑马程序员———OC基础语法(三)---核心语法(1)