【启蒙】C笔记之初学阶段(下篇)
下篇继续点赞,谢谢老铁,不存在下次一定的哈!
c语言简单判断质数的方法
int isprime(int a){
if(a==) return ;
else if(a%==||a==||a==) return ;
else {
for(int i=;i<=sqrt(a);i++){
if(a%i==) return ;
}
}
return ;
}
复制了记得点赞哦!
后续会更新线性筛法求质数!
记忆搜索法
一道能够体现初学者智慧的题目
给定任意n,输出边长为n的菱形图形。



聪明的读者可以尝试一下哦!
#include <stdio.h>
#include <math.h>
int main()
{
int n, x, y, t, g;
scanf("%d", &n);
for (y = -(n - );y <= (n - );y++)
{//将数学的思维带入C语言中,做成了线性规划,实在牛逼!!!!
for (x = -(n - );x <= (n - );x++)
{
t = abs(x);
g = abs(y);
if (t + g <= (n - )) printf("*");
else printf(" ");
}
printf("\n");
}
return ;
}
复制了记得点赞哦!
此题充分利用了双重循环+限制条件。
再来一个变形题,那么这一次都应该会了吧!
做无心菱。

if(t+g==(n-)) printf("*");//改改限制条件就好了!
感谢关注!!!
字典排序
字典序法中,对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是54321。
首先普及一个知识点(摘自百度百科)
extern int strcmp(const char *s1,const char *s2);
下面给出代码:
#include<stdio.h>
#include<string.h>
char ch[][] = { "a","ac","ab","aeg","aef" };
void order() {//用了选择排序,其实就是按ASCII码从小到大排序
char temp[];
for (int i = ;i < ;i++) {
int a = i;
for (int j = i + ;j < ;j++) {
if (strcmp(ch[a], ch[j]) > ) a = j;
//后面的字符比前面的大
}
if (a != i) {
strcpy(temp, ch[a]);
strcpy(ch[a], ch[i]);
strcpy(ch[i], temp);
}
}
}
//排序记住一个原则就好了,用尽所有手段让其回到它该在的位置,这对于后面的快速排序很有帮助。 int main() {
order();
for (int i = ;i < ;i++) {
printf("%s ", ch[i]);
}
return ;
}
觉得可以就点个赞吧!
使用int类型的数据保存字符串数字
for(c=1;c<=m;c++)
{
for(d=1;d<=n;d++)
{
scanf("%1d",&mapp[c][d]);
}
}
求三个数中的最大值
#include<stdio.h>
int main(){
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b) max=b;
if(max<c) max=c;
printf("%d",max);
return 0;
}
简单升级版
int compare(int a,int b,int c){
int r;
r=a>b?a:b;
return r>c?r:c;
}
推荐给你的朋友们吧!
用递归求n!
#include<stdio.h>
int main()
{
int fac(int n);
int n,y;
printf("输入一个整数阶乘:");
scanf("%d",&n);
y = fac(n);
printf("%d!=%d\n",n,y);
return ;
} int fac(int n)
{
int f;
if(n<)
printf("n<0,数据错误");
else if(n == ||n == )
f = ;
else f = fac(n-)*n;
return(f);
}
感谢关注!!!
求N个数 的最小公倍数
普及知识点:最小公倍数=两整数的乘积÷最大公约数
求汉字数量
先来做一个例题测测你水不水!
http://www.51cpc.com/problem/4025
题解:
https://www.cnblogs.com/Attacking-vincent/p/12721895.html
涨知识了吧!
数学思维经典题
①
试统计正整数n的阶乘n!=1×2×3×…×n尾部连续零的个数。
提交题目点:http://www.51cpc.com/problem/4018
这题用模拟的思路写的话代码可能很长,但是用数学的思维去想的话代码还是很简单滴。
个人题解:https://www.cnblogs.com/Attacking-vincent/p/12767434.html
②
小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。
提交题目点:http://www.51cpc.com/problem/4051
这题用数学公式一下就写出来了,用正常代码写就不一定咯。
看看我的题解,告诉你,如何在不知道数学公式的情况下,写出这题。
个人题解:https://www.cnblogs.com/Attacking-vincent/p/12769142.html
喜欢就点个推荐或者收藏吧!
【启蒙】C笔记之初学阶段(下篇)的更多相关文章
- [JS学习笔记]Javascript事件阶段:捕获、目标、冒泡
当你在浏览器上点击一个按钮时,点击的事件不仅仅发生在按钮上,同时点击的还有这个按钮的容器元素,甚至也点击了整个页面. 事件流 事件流描述了从页面接收事件的顺序,但在浏览器发展到第四代时,浏览器开发团队 ...
- 嵌入式Linux学习笔记之第一阶段---基础篇
嵌入式Linux学习分五个阶段 第一阶段: 01嵌入式环境搭建初期 02C语言语法概述 03C语言内存操作 04c语言函数 05linux基础 06gun基础 第二阶段: 01-linux之io系统编 ...
- React学习笔记-7-销毁阶段
销毁阶段可以使用的函数:componentWillUnmount:在删除组件之前进行清理操作,比如计时器和事件监听器.因为这些函数都是开发者手动加上去的,react不知道,必须进行手动清理. 实例第一 ...
- 2. Linux-3.14.12内存管理笔记【系统启动阶段的memblock算法(2)】
memory:表示可用可分配的内存: 结束完memblock算法初始化前的准备工作,回到memblock算法初始化及其算法实现上面.memblock是一个很简单的算法. memblock算法的实现是, ...
- 1. Linux-3.14.12内存管理笔记【系统启动阶段的memblock算法(1)】
memblock算法是linux内核初始化阶段的一个内存分配器(它取代了原来的bootmem算法),实现较为简单.负责page allocator初始化之前的内存管理和分配请求. 分析memblock ...
- 读书笔记-Android初学笔记
Eclipse [ADT] 源 https://dl-ssl.google.com/android/eclipse Notice that no matter what scenario causes ...
- ThinkPHP项目笔记之RBAC(权限)下篇
接着谈谈:添加用户以及用户管理列表 e.添加用户
- NodeJs学习记录(五)初学阶段关于ejs和路由
1.因为只是用了一点皮毛,所以使用起来感觉基本和jsp无异, 逻辑代码块使用 <% if() {} else %> , 输出参数值使用 <%=title %>, 有一个 ...
- NodeJs学习记录(四)初学阶段关于app.js里的一些重要配置
app.set('views', path.join(__dirname, 'views')); 以上代码用于配置页面文件(例如 .ejs 文件)的根目录, 设置之后 访问 ./index 则等同于访 ...
随机推荐
- 特征选择与稀疏学习(Feature Selection and Sparse Learning)
本博客是针对周志华教授所著<机器学习>的"第11章 特征选择与稀疏学习"部分内容的学习笔记. 在实际使用机器学习算法的过程中,往往在特征选择这一块是一个比较让人模棱两可 ...
- MATLAB中mean的用法
https://blog.csdn.net/wangyang20170901/article/details/78745587 MATLAB中mean的用法 转载仙女阳 最后发布于2017-12-07 ...
- python3.4连接mysql数据库的方法
python3.4连接mysql数据库的方法 发布时间:2014-08-04编辑:www.jbxue.com 本文介绍了python3.4连接mysql数据库的方法,在python3.4中不能用mys ...
- 仅用200个样本就能得到当前最佳结果:手写字符识别新模型TextCaps
由于深度学习近期取得的进展,手写字符识别任务对一些主流语言来说已然不是什么难题了.但是对于一些训练样本较少的非主流语言来说,这仍是一个挑战性问题.为此,本文提出新模型TextCaps,它每类仅用200 ...
- 开发一个健壮的npm包
项目地址:loan-calculate-utils npm包的发布.更新查看上一篇文章 开发一个基础的npm包 目前我们的目录是这个样子: . ├── source 源代码目录 │ └── ind ...
- Jmeter4.0之插件安装(三)
使用Jmeter的实际过程中,需要使用到很多插件,比如json的插件,还有就是做websocket接口测试的时候需要下载websocket的插件 到https://jmeter-plugins.org ...
- [Jenkins01] Jenkins的安装和部署(jenkins教程)
一.jenkins的下载.安装以及环境的搭建部署. 1.什么是jenkins以及它的作用: Jenkins 是一个可扩展的持续集成(CI)平台.它只是一个平台,真正运作的都是插件. Jenkins的主 ...
- JavaScript中去除字符串空格的方法
语法 string.trim() 参数值 无 返回值 类型:string 描述:返回移除头尾空格的字符串 技术细节 JavaScript版本: ECMAScript 5 去除字符串左右两端的空格,在v ...
- python学习第二节 数据类型、字符编码、文件处理
标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 数字 #整型 ...
- NKOJ3775 数列操作
问题描述 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. 输入格式 第一行包含三个整数n ...