专升本计算机编程:C程序设计实例

【程序1】题目:求1+2!+3!+…+20!的和1.程序分析:此程序只是把累加变成了累乘。2.程序源代码:#include "stdio.h"#include "conio.h"int main(){ float n,s=0,t=1; for(n=1;n<=20;n++){ t*=n; s+=t; } printf("1+2!+3!...+20!=%e\n", s); getch(); return 0;}tips:#include"conio.h":con
分类: 其他 发布时间: 11-23 08:50 阅读次数: 0

C程序算法题一

1.输入一整数n,判断是否为素数#include<stdio.h>int main(){ int i,n; scanf("%d", &n); for(i=2;i<n;i++){ if(n%i==0){ break; } } if(i>=n){ printf("%d is a prime\n", n); }else{ printf("%d
分类: 其他 发布时间: 11-23 08:49 阅读次数: 0

C程序算法题二

1.将一张百元大钞对换成1元、5元、10元的小钞,要求每种小钞最少要一张,编程求共有多少种对换方法#include "stdio.h"void main(){ int a,b,c,n; for(a=1;a<100;a++){ for(b=1;b<20;b++){ for(c=1;c<10;c++){ if(a+b*5+c*10==100){ n++; } } } } printf("一共有%d种方法", n);}2.鸡翁一值
分类: 其他 发布时间: 11-23 08:49 阅读次数: 0

C程序基础知识二

1.定义一个结构变量,共三个成员分别是字符型、整形和浮点型,则该结构体变量所占内存长度为 7 个字节。定义一个共用体变量,共三个成员分别是字符型、整形和浮点型,则该共用体变量所占内存长度为 4 个字节解析:共用体内存长度分配是按照内存长度最大变量分配的,而结构体变量内存长度是所有成员加起来的内存长度。2.解析:数组pt中的元素是数组t的行首地址,而pt+1指的是pt数组第二个元素的地址,因此*(pt+1)就是t数组的第二行的首地址, *(pt+1)+2就是指t数组第二行第三个元素的地址,所以
分类: 其他 发布时间: 11-23 08:49 阅读次数: 0

面试官:系统需求多变时如何设计?

面试官:我想问个问题哈,项目里比较常见的问题 面试官:我现在有个系统会根据请求的入参,做出不同动作。但是,这块不同的动作很有可能是会发生需求变动的,这块系统你会怎么样设计? 面试官:实际的例子:现在有
分类: 服务端 发布时间: 11-23 08:49 阅读次数: 0

C程序基础知识三

1.输入两个整数,按大到小顺序输出(使用指针,使用两种方法)方法一:#include<stdio.h> int main(){ int a,b,*p1,*p2,*p; scanf("%d%d", &a, &b); p1=&a; p2=&b; if(a<b){ p=p1; p1=p2; p2=p; } printf("max=%d min=%d\n", *p1, *p2); return 0;}方法二:#in
分类: 其他 发布时间: 11-23 08:48 阅读次数: 0

妈妈再也不用担心我的C语言啦!

妈妈再也不用担心我的C语言啦!养个好习惯,点个赞,关注再走吧!专升本备考期间总结出来的,建议收藏。算法总结x+x+1+x+2\sqrt{x+x+1+x+2}x+x+1+x+2​是整数编程,在[1,98]查找并输出所有满足条件“x+x+1+x+2的平方根是整数”的数x(如输出2、11,因为2+3+4的和为9,11+12+13和为36,他们的平方根3、6都是整数)#include <stdio.h>#include<math.h>void main(){
分类: 其他 发布时间: 11-23 08:48 阅读次数: 0

Java家庭记账小软件

通过以下这个小案例,来作为Java入门的第一课。虽然之前学过C#语言和C语言,但还是仔仔细细的敲了以下代码,并且都有详细的注释。相信这对有过其它编程语言基础的你并不难。先来看下要实现的效果:首先要写个工具类,其中readKeyBoard方法要多注意import java.util.Scanner;/**Utility工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节*/public class Utility{ private stat
分类: 其他 发布时间: 11-23 08:48 阅读次数: 0

Java简单排序

package com.harrison.java;public class selectionSort { public static void swap(int[] arr,int i,int j) { int tmp=arr[j]; arr[j]=arr[i]; arr[i]=tmp; } public static void selectSort(int [] arr) { if(arr==null || arr.length<2) { return; }
分类: 其他 发布时间: 11-23 08:47 阅读次数: 0

Math.random()与对数器

这篇文章重点是Java里的随机函数Math.random(),具体就不分析了,详细的可以百度。这个函数尤为重要,因为在检验一个算法是否正确的时候,我们只能进行有限的次数检验,仅仅靠我们有限的那几个检验,有时候不足以验证算法的正确性。package com.harrison.java;public class Comp { public static void swap(int[] arr,int i,int j) { int tmp=arr[j]; arr[j]=arr[i]; arr[
分类: 其他 发布时间: 11-23 08:47 阅读次数: 0

1.复杂度、对数器、二分法与异或运算

三大排序算法通过使用对数器来检验,可以保证代码的正确性。1)选择排序package com.harrison.one;import java.util.Arrays;//选择排序public class Class01_SelectionSort { // 选择排序核心代码 public static void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } fo
分类: 其他 发布时间: 11-23 08:46 阅读次数: 0

2.链表结构、栈、队列、递归行为、哈希表和有序表

链表结构、栈、队列、递归行为、哈希表和有序表链表节点结构单向链表节点结构public class Node{ public int value; public Node next; public Node(int data){ value=data; }}双向链表节点结构public class DoubleNode{ public int value; public DoubleNode last; public DoubleNode next; public Doubl
分类: 其他 发布时间: 11-23 08:46 阅读次数: 0

3.归并排序与随机快排

归并排序递归实现整体是递归,左边排好序+右边排好序+merge让整体有序让其整体有序的过程里用了排外序方法利用master公式来求解时间复杂度分析:申请一个与原数组长度相同的空间,定义一个做指针和右指针,谁小拷贝谁,如果发某个指针越界,则将另一部分全部剩余元素加到新的数组里,最后将所有数据覆盖原来的数组非递归实现递归方法和非递归方法没有本质区别,递归方法只不过是左右两个组无限划分,一直二分下去。然后左部分变有序,右部分有序,再merge让整体有序。非递归方法无非就是我们规定好了它每回me
分类: 其他 发布时间: 11-23 08:46 阅读次数: 0

4.比较器与堆

堆结构逻辑概念上就是完全二叉树结构完全二叉树,通俗的说就是,要么这一层是满的,在不满的这一层也是从左到右依次变满的。如果下标从0开始算,那么左孩子(下标):2*i+1右孩子:2*i+2父节点:(i-1)/2但是有时候0弃而不用,从1开始算起左:2*i(i<<1)右:2*i+1((i<<1)|1)父:i/2(i>>1)为什么?因为频繁操作i的时候,位运算效率更高!大根堆:每一棵子树,最大值都是自己头节点的值小根堆:每一棵子树,最小值都是自己
分类: 其他 发布时间: 11-23 08:46 阅读次数: 0

5.trie、桶排序、排序总结

前缀树单个字符串中,字符从前到后的加到一颗多叉树上字符放在路上,节点上有专属的数据项(常见的是pass和end值)所有样本都这样添加,如果没有路就新建,如有路就复用沿途节点的pass值增加1,每个字符串结束时来到的节点end值增加1可以完成前缀相关的查询package com.harrison.five;import java.util.HashMap;public class Code02_TrieTree { // 字符串是所有的小写字母 public static clas
分类: 其他 发布时间: 11-23 08:45 阅读次数: 0

6.链表相关面试题

链表问题面试链表解题的方法论对于笔试,不用太在乎空间复杂度,一切为了时间复杂度对于面试,时间复杂度依然放在第一位,但是一定要找到空间最省的方法链表面试题常用数据结构和技巧使用容器(哈希表、数组等)快慢指针快慢指针输入链表头节点,奇数长度返回中点,偶数长度返回上中点输入链表头节点,奇数长度返回中点,偶数长度返回下中点输入链表头节点,奇数长度返回中点前一个,偶数长度返回上中点前一个输入链表头节点,奇数长度返回中点前一个,偶数长度返回下中点前一个package com.harr
分类: 其他 发布时间: 11-23 08:45 阅读次数: 0

7.二叉树基本算法

二叉树结构描述public static class Node { public int value; public Node left; public Node right; public Node(int v) { value = v; } }递归方式实现二叉树的先序、中序、后序遍历:理解递归序,递归遍历的本质是递归序,二叉树递归序,每个节点都会达到三次。先序、中序、后序都可以在递归序的基础上加工出来第一次到达一个节点就打印就是先序、第二次打印即中序、第三次即
分类: 其他 发布时间: 11-23 08:45 阅读次数: 0

9.贪心算法

贪心算法1)最自然智慧的算法2)用一种局部最功利的标准,总是做出在当前看来是最好的选择3)难点在于证明局部最功利的标准可以得到全局最优解4)对于贪心算法的学习主要以增加阅历和经验为主从头到尾讲一道利用贪心算法求解的题目【题目】给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中,字典序最小的结果字典序:两个字符串如果要放入字典中,谁放在前面谁的字典序就小。如果两个字符串长度一样,将其视为K进制的正数进行比较(K=26)如果两个字符串长度不一
分类: 其他 发布时间: 11-23 08:45 阅读次数: 0

8.二叉树的递归套路

二叉树的递归套路可以解决面试中绝大多数(95%)的二叉树问题尤其是树型dp问题本质是利用递归遍历二叉树的便利性小技巧多如牛毛,大技巧就两个:二叉树的递归套路、暴力递归改动态规划的套路所谓二叉树的递归套路就是在树上做动态规划,什么是动态规划呢?动态规划就是用时间换空间的方式。二叉树的递归套路1)假设以X节点为头,假设可以向X左树和X右树要任何信息2)在上一步的假设下,讨论以X为头节点的树,得到答案的可能性(最重要)3)列出所有可能性后,确定到底需要向左树和右树要什么样的信息4)把左树信息
分类: 其他 发布时间: 11-23 08:44 阅读次数: 0

10.并查集结构

并查集增删改查时间复杂度为O(1)的结构目前有哈希表跟并查集1)有若干个样本a、b、c、d…类型假设是V2)在并查集中一开始认为每个样本都在单独的集合里3)用户可以在任何时候调用如下两个方法:boolean isSameSet(V x, V y):查询样本x和样本y是否属于一个集合void union(V x, V y) :把x和y各自所在集合的所有样本合并成一个集合4)isSameSet和union方法的代价越低越好1)每个节点都有一条往上指的指针2)节点a往
分类: 其他 发布时间: 11-23 08:44 阅读次数: 0