![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
C语言从入门到进阶
algo▪Tempest
一天亿点,法力无边
展开
-
整数N的约数和(不包括本身
#include<iostream>#include<cmath>using namespace std;#define maxn 10000int prime[maxn + 5] = {0};int f[maxn + 5] = {0};long long cnt[maxn + 5] = {0};void init(){ for(int i = 2...原创 2019-12-29 20:08:23 · 497 阅读 · 0 评论 -
记忆化搜索
所谓记忆化搜索,就是将每一步得到的值存储在一个数组里(当然这是它最简单的理解),递归的每一次返回值存在哪儿???你想过吗???递归爆栈如何理解???比如n!的实现...原创 2019-12-28 16:42:47 · 74 阅读 · 0 评论 -
素数筛选之素数筛选
这是筛选素数最简单的一种方法核心思想就是用因子,进行0-1标记#define maxn 1000000int prime[maxn + 5] = {1, 1, 0};void init(){ for(int i = 1; i <= maxn ; i++){ if(prime[i]) continue; for(int j = 2 * i; j <= maxn; j ...原创 2019-12-28 16:11:57 · 67 阅读 · 0 评论 -
素数筛选之线性筛选
如何找到1百万这个范围内的素数???我们用一个数组prime来保存结果prime[0]保存素数的个数#define maxn 1000000int arr[maxn + 5] = {0};void init(){//这是一种标记法+巧用因子法,如果你不理解,那么请看看素数的概念。 for(int i = 2; i <= maxn; i++){ if(!arr[i]) pr...原创 2019-12-28 16:05:57 · 166 阅读 · 1 评论 -
C语言方向数组2
马走日#include <stdio.h>#include <string.h>#define maxn 10int arr[maxn + 5][maxn + 5];//方向数组int dir[8][2] = { {-2, 1}, {-2, -1}, {2, -1}, {2, 1}, {-1, -2}, {-1, 2}, {1, -2},...原创 2019-12-19 21:01:11 · 255 阅读 · 0 评论 -
C语言方向数组
#include <stdio.h>#define maxn 20//ep11int grid[maxn + 5][maxn + 5];int dir[4][2] = { {-1, -1}, {-1, 0}, {-1, 1} ,{0, 1}};int calc(int x, int y) { int ans = 0; for(int k = 0;...原创 2019-12-19 20:26:16 · 384 阅读 · 0 评论 -
C语言__宏定义(详解)
这哥们儿写的不错,推给大家!添加链接描述转载 2019-12-12 20:10:04 · 181 阅读 · 0 评论 -
宏定义一个没有Bug的max函数
#incldue<stdio.h>#define max(a,b) a>b? a:bint main(){ int a = 7; printf("%d\n", max(2,3)); printf("%d\n", 5 + max(2,3)); printf("%d\n", max(2, max(3, 4))); printf("%d\n", max(2, 3>...原创 2019-12-12 19:05:06 · 156 阅读 · 0 评论 -
值传递机制
①如果参数是基本数据类型,则实参赋给形参的是实参真实存储的数据值②如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。至于为什么是上面这样,建议你去看看不同数据类型在栈和堆上开辟的内存空间,你就会明白这个机制。则交换两个数的方法为:void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp;}int...原创 2019-12-11 19:26:17 · 62 阅读 · 0 评论 -
牛顿迭代算法C语言实现
#include<stdio.h>#include<math.h>#define epsl 1e-6double F(double x){ return x * x -2;}double f(double x){ return 2 * x;}double NewTon(double(*F)(double), double(*f)(double...原创 2019-12-10 20:32:43 · 181 阅读 · 0 评论 -
C语言之数组
二分查找(折半查找):在单调有序的数组中查找目标值,并返回索引。设待查找的数为x,设置三个指针head,mid,tail。判断arry[mid]与x的大小,若等于,则直接返回mid;若小于则将tail=mid-1,更新mid=(head+tail)/2;若大于则将head=mid+1,更新mid;反复下去,直到找到与x相等的值。/*******************************...原创 2019-12-10 18:46:23 · 69 阅读 · 0 评论 -
C语言之输入输出
一、scanfint scanf(const char * restrict format,…);scanf("%d %d",&a,&b);函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF。end of file为C...原创 2019-12-01 18:23:04 · 245 阅读 · 0 评论