2018-2-3 test17
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
找出这两个数字。
#include<stdio.h>
#include<windows.h>
#include<assert.h>
/*用0依次和数组中的每个元素进行异或,出现两次的数字通过异或会相互抵消,最后剩下的就是只出现一次的数字。剩下的两个数不相等,异或的话至少有一位是为1的,二进制对应位也不相同。
1.得到0与数组中各元素依次异或的结果;
2.找到依次异或后的结果中为1的位置并标记,根据标记位是否为1进行分组;
2.将原数组分为两组,每组都含有一个只出现一次的数字,然后进行数组元素依次异或, 剩下的即为出现一次的数字。*/
void find_single_nums(int a[], int size)
{assert(a);int num1 = 0;int num2 = 0;int i = 0;int num = 0;int flag = 0;for (i = 0;i < size;i++){num ^= a[i];}for (i = 0;i < size;i++){if (((num >> i) & 1) != 1){flag++;}else {break;}}for (i = 0; i < size; i++){if (((a[i] >> flag) & 1) != 1){num1 ^= a[i];}else{num2=num^(num1);}}printf("%d %d", num1, num2);
}
int main()
{int a[] = { 1,2,3,4,5,1,2,3 };int size = sizeof(a) / sizeof(a[0]);find_single_nums(a, size);system("pause");return 0;
}
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。
#include<stdio.h>
#include<windows.h>
#include<assert.h>//喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。 int count_juice(int n)
{int bottle= n;int sum = n; while (bottle>= 2){sum +=bottle/2 ;bottle = bottle / 2 + bottle % 2;}printf("%d", sum);return 0;}
int main()
{count_juice(20);system("pause");return 0;
}
模拟strcpy
#include<stdio.h>
#include<windows.h>
#include<assert.h>
char* my_strcpy(const char* p, char* p1)
{char* p2 = p1;assert(p);assert(p1);while (*p != '\0'){*p1++ = *p++;}*p1 = *p;return p2;
}int main()
{const char* p = "hello123";char p1[64] = { 0 };my_strcpy(p, p1);system("pause");return 0;
}
模拟strcat
#include<stdio.h>
#include<windows.h>
#include<assert.h>
char* my_strcat( char* p, char* p1)
{assert(p);assert(p1);char* p2 = p;while (*p != '\0'){p++;}while (*p1 != '\0'){*p++ = *p1++;}*p = *p1;return p2;
}int main()
{char p[64] = "hello";char* p1 = "world";my_strcat(p, p1);system("pause");return 0;
}
2018-2-3 test17相关推荐
- 回顾 2018,展望 2019
1. 概述 今天是 2019 年第一天,趁着元旦 3 天假期时间,对即将过去的这一年做个总结回顾,看下这一年得到了什么,失去了什么,并对来年做个新的规划,看下需要采取哪些措施提升自己. 2. 2018 ...
- 2017 年总结及 2018 年计划
概述 本文写于 2018.01.01,计划从 2017 开始有目的的进行复盘行动,所以将该文搬运到此处. ----------------------------分界线---------------- ...
- 2018 Google kickstart Problem A. Planet Distance
题目描述 Small dataset 3 ≤ N ≤ 30. Large dataset 3 ≤ N ≤ 1000.input 2 5 1 2 2 3 3 4 2 4 5 3 3 1 2 3 2 1 ...
- 2018年终总结:自由而独立
时间真快,一年,走完了大三的后半学期和大四的前半学期. 这一年经历了很多事情,第一次这么久没有回家. 收获: 计算机进度: 一年的时间从VB版机房系统到现在的JS 其实,并没有很快很扎实连贯的走进度, ...
- VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018...
视频介绍 树莓派3安装目前最流行的PLEX服务器,实现既能最大限度降低功耗,也能随时随地观看分享影片. 一.在树莓派下安装PLEX媒体服务器 1.在终端,将你的树莓派更新至最新 sudo apt up ...
- 狗年拜年php源码,2018狗年拜年词大全!再也不担心拜年没祝词啦~祝您新年快乐!...
原标题:2018狗年拜年词大全!再也不担心拜年没祝词啦~祝您新年快乐! 2018 狗 年 大 吉 HAPPY NEW YEAR 为了您在春节期间能够在第一时间 为您的亲朋好友送上祝福~ 小编已经贴心的 ...
- 2018usnews计算机专业排名,2018年研究生计算机专业前50排名(美USNews版)
2018年美国大学--研究生--计算机科学专业排名: (USNews 美新闻周刊版) 排名 学校英文名 学校汉语名 州 / 城市 1 Carnegie Mellon University 卡耐基梅 ...
- 2018会考计算机成绩查询入口,2018年山东会考成绩查询时间及入口
2018年山东会考成绩查询时间及入口2019-07-10 20:39:51文/李男 2018年山东会考成绩查询时间为2018年2月2日,并且山东高中会考成绩的查询入口也已经开通了,下面小编整理了会考成 ...
- 康复治疗学可以考计算机吗,【大揭秘】2018“人机对话”康复医学治疗技术专业技术资格考试...
原标题:[大揭秘]2018"人机对话"康复医学治疗技术专业技术资格考试 昨天,关于"2018年康复医学治疗技术专业技术资格考试采用人机对话考试方式"的通知一经发 ...
- pch在c语言中占内存字节数,2018年9月计算机二级C语言考试章节习题及答案(6).docx...
2018年9月计算机二级C语言考试章节习题及答案(6) 第2章 C程序设计的初步知识 2.3 整型数据 1[单选题] 用8位无符号二进制数能表示的最大十进制数为( ) A.127 B.128 C.25 ...
最新文章
- CBNetV2:北大提出的复合主干网络,COCO成绩60.1%
- mysql行级锁 表级锁 页级锁详细介绍_MySQL行级锁、表级锁、页级锁详细介绍
- urllib库中cookie的使用
- 【手势交互】9. PS Move
- [2020.10.30NOIP模拟赛]字符串水题【SA,树状数组】
- python 数据分析库_五个 Python 常用数据分析库
- linux里的网卡自动连接,【Raspberry Pi】USB无线网卡自动连接
- 中国光伏产业将面临何种形势?
- 最短路中部分点只能从中任意选取K个问题
- 如何做相册_我是如何对2000张照片进行批量套版的
- 用友NC删除会计科目的前后台操作
- 详细介绍MPLS路由协议的相关概念知识
- ASP .Net C# ---Excel导入导出方法
- postman 使用
- 电子测量技术——基于Python的测量数据误差处理程序
- 【搜狗输入法安装包文件有异常,错误码:2,现在终止安装】解决办法
- MySQL 日期时间加减
- 去国外超市如何用英文表达你想要的东西?
- ThinkPad笔记本无法调节亮度
- DNS是什么?怎样设置DNS?
热门文章
- 达梦查询计算百分比数据为零
- android 解析midi文件,基于安卓的乐音识别及MIDI文件输出的研究和实现
- c++中为什么要用引用?
- unity3d 模拟电脑实现_Unity3D实现3D立体游戏原理及过程
- android开发课程表app数据库,基于Android studio 的课程表增删查改功能(基于sqlite)
- 淘宝众筹数据爬取(1)
- C Primer Plus第四章
- 计算机知识讲稿,讲稿2(第1章 计算机基础知识)课件
- android 声音资源,Android系统声音文件目录
- 程序员生存定律--表达背后的力量(2)【转】