- 博客(40)
- 收藏
- 关注
原创 Differential privacy——差分隐私
首先我们要明白什么是隐私?在百度百科上是这样解释的 “ 隐私,顾名思义,隐蔽、不公开的私事”,即指个人的不愿公开的私事或秘密。那么在互联网信息泛滥的情况下,我们希望我们的数据能为我们的生活提供便利的同时,也不会泄露个人的敏感信息招致自身利益受损,所以这个时候就需要保护隐私。由此出现了最早两个隐私度量作为隐私保护的衡量标准:披露风险攻击者通过发布的数据集所获取的信息进而披露隐私的概率。即通过攻击者披露隐私的多少,来侧面反映隐私保护的效果。如果所有敏感数据的披露风险均小于阈值 α (0≤ α ≤1)
2021-09-15 22:00:12 6183 2
原创 C++(vector,list,stack和queue的操作)
vectorvector可以用来表示一个不定长度的数组,它是一种序列容器。它的大小是可以动态改变的。当新元素插入容器时,vector不会每次都重新分配大小。与其他动态序列容器相比,vector在访问元素时更加高效,在末尾添加和删除元素相对高效。#include<vector> //包含头文件vector<int> vec; //声明一个int型向量vector<int> vec(5);//声明一个初始大小为5的int向量vector<int>
2021-09-13 19:48:04 773
原创 C和C++的循环输入
最近在做题的时候遇到了循环输入的问题敲完代码提交失败,检查发现是陷入了死循环,下面来说说怎么解决吧。C语言版:#include <stdio.h>int main(){ int n;while(scanf("%d",&n) )//死循环,会一直运行下去{ } return 0;}这段代码是可以通过的,但是会陷入死循环。while(~scanf("%d",&n))while(scanf("%d",&n) != EOF)解释:
2021-09-12 16:29:57 2992
原创 计算n次幂函数—库函数 - pow()
描述库函数 double pow(double x, double y) 返回 x 的 y 次幂,即 xy。声明下面是 pow() 函数的声明。double pow(double x, double y)参数x -- 代表基数的浮点值。y -- 代表指数的浮点值。返回值该函数返回 x 的 y 次幂的结果。...
2021-09-02 20:53:19 817
原创 每日编程——买卖青蛙
题目:你现在是一个买卖青蛙的 huster。每天的青蛙价格不一样,prices[i]代表青蛙在第 i 天的价 格,求只做一次交易(买入 1 只,卖出 1 只)能得到的最大收益(你必须先买了青蛙之后才能 卖青蛙),时间复杂度要求:O(n)函数:int maxIncome(int prices[ ],int n) 具体代码如下:#include<iostream>#include<stdlib.h>using namespace std; int maxIncome(in
2021-08-22 15:14:09 181
原创 每日编程题——前正后负(排序)
题目:一个长度为 n 的数组由负数、0、正数组成。编写函数,将其重新排序为前段都是负数,后段均为非负数的结构。要求时间复杂度为 O(n)。思路:一开始想着直接用排序的方法,因为排序是从小到大的,所以得到的输出也是负数在前面正数在后面的这么一个有序数组,但这不符合题意,所以依照题目的要求得出另外一种思路。算法思想:输入一个数组a【n】,依次判断a【i】,如果是负数从另一个数组b【n】的前面插入,反之如果是正数则从b【n】的后面插入。具体代码如下:#include <iostream>
2021-08-19 16:36:37 615
原创 递归求阶乘和
本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。函数接口定义:double fact( int n ); ouble factsum( int n );函数fact应返回n的阶乘,建议用递归实现。函数factsum应返回 1!+2!+…+n! 的值。题目保证输入输出在双精度范围内。#include <stdio.h>double fact( int n );double factsum( int n );int main(){.
2021-06-28 10:27:21 711
原创 递归实现指数函数
本题要求实现一个计算xn(n≥1)的函数。函数接口定义:double calc_pow( double x, int n );函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。#include <stdio.h> double calc_pow( double x, int n ); int main(){ double x; int n; scanf("%lf %d", &x, &n);
2021-06-28 09:53:15 278
原创 分类统计各类字符个数
题目要求:本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。函数接口定义:void StringCount( char *s );其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数的格式输出。#include <stdio.h>#define MAXS 15 void StringCount( char *s );int main()
2021-06-28 09:18:33 411
原创 C 语言 void 详解及应用
首先我们得明白 void 是"无类型",意为没有返回值的意思。void 的作用1.对函数返回的限定2.对函数参数的限定当函数不需要返回值时,必须使用void限定,这就是我们所说的第一种情况。例如:void func(int a,char *b)。当函数不允许接受参数时,必须使用void限定,这就是我们所说的第二种情况。例如:int func(void)。...
2021-06-16 17:45:32 4429
原创 字符串衔接
已知两个字符串,把第一个字符串的头3个字符和第二个字符串的末尾3个字符合并成一个新字符串输入第一行输入T表示有T个测试实例第二行输入第1个字符串,设定字符串只包含字母或数字,长度大于3第三行输入第2个字符串,设定字符串只包含字母或数字,长度大于3输出每行输出合并后新的字符串样例输入2 china1949 szu1983 2012year day14 样例输出chi983 201y14 #include<stdio.h>#include<string.h>
2021-06-16 16:43:39 463
原创 字符串的连接
本题要求实现一个函数,将两个字符串连接起来函数接口定义:char *str_cat( char *s, char *t );函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。裁判测试程序样例:#include <stdio.h>#include <string.h>#define MAXS 10char *str_cat( char *s, char *t );int main(){char p;char str1[MAXS+MA
2021-06-10 10:12:22 9545
原创 有参函数和无参函数的区别
在这总结一下有参函数和无参函数的区别首先得明白什么是有参函数和无参函数:无参函数是指在主调函数调用被调函数时,主调函数不向被调函数传递数据。无参函数一般用来执行特定的功能,可以有返回值,也可以没有返回值,但一般以没有返回值居多。有参函数是指在主调函数调用被调函数时,主调函数通过参数向被调函数传递数据。在一般情况下,有参函数在执行被调函数时会得到一个值并返回给主调函数使用。注意!!!有参函数和无参函数不能单单凭有无返回值确定为哪类函数,最核心本质就是主调函数需不需要向被调函数传递数据,有的话
2021-06-08 09:41:36 16845 17
原创 形参和实参的区别
最近在做题的时候被问到了形参和实参的区别,所以在这具体解释一下。首先什么是形参?什么是实参?形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。实参(实际参数)函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。形参和实参的区别和联系形参变量只有在函数被调用时才会分配内存,调用结束后,立刻
2021-06-03 10:06:50 6401
原创 查找指定字符
题目描述:本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1234输出样例2:Not Found#include<stdio.h>
2021-05-31 10:46:40 1735 1
原创 字符串逆序(三种方法)
题目描述输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH第一种方法:开拓新的空间逆序存储原来字符串的内容,然后再输出。#include <stdio.h>#include <stdlib.h>#include <string.h>int m
2021-05-31 10:35:19 57572 7
原创 交换最小值和最大值
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。注意:题目保证最大和最小值都是唯一的。输入格式:输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。输出格式:在一行中顺序输出交换后的序列,每个整数后跟一个空格。输入样例:58 2 5 1 4输出样例:1 2 5 4 8一开始的思路是直接从数组里找出最大最小值然后根据条件交换。for (i = 0; i < n; i++)
2021-05-25 01:34:55 6495 1
原创 冒泡排序(数组)
题目描述输入n个数字,使用冒泡排序对其进行升序排序。输入测试次数T每组测试数据格式为:数字个数n,后跟n个数字。假设n<20。输出对每组测试数据,输出冒泡排序的每趟排序结果样例输入25 10 4 43 1 210 20 123 12 2 434 54 2 45 23 -10样例输出4 10 1 2 434 1 2 10 431 2 4 10 431 2 4 10 4320 12 2 123 54 2 45 23 -10 43412 2 20 54 2 45
2021-05-24 23:35:45 973
原创 将数组中的数逆序存放
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2输出样例:2 1 8 10思路:如果投机取巧的话就正序输入数组再倒序输出即可,以下方案是按题目要求倒序输入再正序输出(注意:输出的行末不得有多余空格,就是说最后一个输出后面
2021-05-24 16:35:12 1220
原创 短除法(求最大公约数)
原理:短除法是求最大公因数的一种方法,也可用来求最小公倍数。求几个数最大公因数的方法,开始时用观察比较的方法,即:先把每个数的因数找出来,然后再找出公因数,最后在公因数中找出最大公因数。后来,使用分解质因数法来分别分解两个数的因数,再进行运算。之后又演变为短除法。短除法运算方法是先用一个除数除以能被它除尽的一个质数,以此类推,除到商是质数为止。思路:一开始是打算分别求出两个数的因数,对比找到公因数最后输出最大公因数的,后来发现只需要从两个数比较小的那个数从1到它本身开始寻找两个数的公因数输出最后的
2021-05-21 17:45:23 7678
原创 欧几里得算法/辗转相除法(求最大公约数)
原理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(Greatest Common Divisor)缩写为GCD。gcd(a,b) = gcd(b,a mod b) (不妨设a>b 且r=a mod b ,r不为0)#include<stdio.h>int main(){ int a, b; int temp=1; printf("请输入两个数:"); scanf_s("%d %d", &a, &b); //两个
2021-05-21 10:17:52 399
原创 更相减损法(求最大公约数)
算法本质:第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。则第一步中约掉的若干个2的积与第二步中等数的乘积就是所求的最大公约数。其中所说的“等数”,就是公约数。求“等数”的办法是“更相减损”法。#include<stdio.h>int main(){ int a, b; int temp; int num=0;
2021-05-19 17:59:24 5622 1
原创 求最大值及其下标
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。输入样例:62 8 10 1 9 10输出样例:10 2#include<stdio.h>#include<stdlib.h>int main(){ int n,i,t=0; int *a; scanf_s
2021-05-12 17:45:45 205
原创 简化的插入排序
本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。输入格式:输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。输出格式:在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。输入样例:51 2 4 5 73输出样例:1 2 3 4 5 7#include<stdio.h>#include<stdlib.h>int main(){ int n,i,
2021-05-12 17:14:40 295
原创 查找整数
题目描述:本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。输入格式:输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。输出格式:在一行中输出X的位置,或者“Not Found”。输入样例:5 73 5 7 1 9输出样例:2#include<stdio.h>#include<stdlib.h>int main(){ int n,
2021-05-12 17:01:32 116
原创 冒泡排序
该算法为简单的冒泡排序算法#include<stdio.h>int main(){ int a[10]; int i, j, temp; for (i = 0; i < 10; i++) { scanf_s("%d", &a[i]); } for (j = 0; j < 9; j++)//进行n-1次循环(n为数组的大小) { for (i= 0; i < 9 - j; i++)//每次进行n-1-j次的循环,因为每进行一次就有该次排序最
2021-05-12 15:44:49 88
原创 回文数和素数
题目描述输出指定范围内的同时是素数与回文数的数据,如果没有,输出“Not found”#include<stdio.h>int main(){ int t; scanf_s("%d", &t); while (t--) { int a, b; int sum = 0; int x, y ; int n; scanf_s("%d%d", &a, &b); for ( n = a; n <= b; n++)//a为下限,b为上限
2021-05-11 15:48:10 1070
原创 循环结构
第一种:用while语句实现循环while语句可简单地记为: 只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句。注意:while循环的特点是先判断条件表达式,后执行循环体语句。#include<stdio.h>int main(){ int i=1,sum=0; //定义变量i的初值为1,sum的初值为0 while(i<=100) //当i>100,条件表达式i<=100的值为假,不执行循环体 { //循环体开始 su
2021-05-11 10:28:13 273
原创 输出单个字符和字符串
输出单个字符第一种:输出指定的字符(putchar函数)。#include <stdio.h>int main(){ char a='B',b='O',c='Y'; //定义3个字符变量并初始化 putchar(a); //向显示器输出字符B putchar(b); //向显示器输出字符O putchar(c); //向显示器输出字符Y putchar ('\n'); //向显示器输出一个换行符 return 0;}第二种:输出从键盘输入的字符(g
2021-05-08 15:11:26 4111
原创 求组合数的值---函数
题目描述实现组合数的计算。输入n,m,计算出#include<stdio.h>int fact(int m, int n);int main(){ int m, n, result; scanf_s("%d%d", &m, &n); result = fact(m, n); printf("%d\n", result); return 0;}int fact(int m,int n){ int t, i, a = 1, b = 1, c = 1
2021-05-06 11:20:19 772
原创 整数的逆序数
本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。#include <stdio.h>int reverse(int number);int main(){ int n; scanf_s("%d", &n); printf("%d\n", reverse(n)); return 0;}int reverse(int number)
2021-05-06 10:33:52 2300
原创 符号函数
本题要求实现符号函数sign(x)。函数接口定义:int sign( int x );其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x) = 1;若x等于0,sign(x) = 0;否则,sign(x) = −1。#include <iostream>using namespace std;int sign(int x);int main(){ int x; cin >> x; //scanf("%d",&x); cout
2021-05-06 10:25:06 1086
原创 输出三角形字符阵列
题目:根据要求输出n行由大写字母A开始构成的三角形字符阵列。#include<stdio.h>int main(){ char c = 'A'; //定义一个char类型为A(因为你是从大写字母A开始构成的) int t; //定义一个t(这里是根据题目的意思是输出多少行) scanf_s("%d", &t); //输入t while (t--)
2021-04-12 16:25:40 979
原创 奇数分之一序列前n项和
第一种:#include<stdio.h>int main(){ int n,m=1; double sum=0.0; printf("Enter n:\n"); scanf_s("%d",&n); for(int i=1;i<=n;i++) { sum=sum+1.0/m; m=m+2; } printf("sum = %.6f\n",sum); return 0;}第二种:#include <stdio.h>
2021-04-02 17:39:40 382
原创 编写程序,计算并输出1!+2!+3!+.....+n!之和sum,再判断sum里是否含有n,有就输出1,反之输出0。
思路:先计算出阶乘之和,再把sum逐个拆解判断。#include <stdio.h>int main(){ int n, s1=1 ,s2=0,b; scanf_s("%d", &n);//求阶乘和 for (int i = 1; i <= n; i++) { s1 = s1 * i; s2 = s1+s2; } printf("%d\n", s2);//判断结果里是否含有n if (s2 >= 10) { b = s2 % 10;
2021-04-02 17:22:26 1195
原创 回文数
题目:从键盘输入任意正整数,判断该数是否是回文数。#include<stdio.h>;int main(){ int t; scanf_s("%d", &t); while (t--) { int x, s, y = 0; scanf_s("%d", &x); s = x; while (s>0) { y = y * 10 + s % 10; s = s / 10; } if (y == x) printf("Ye
2021-04-01 17:11:32 77
原创 阶乘
题目:编写程序,给定一个非负整数n,返回n!的结果,及结果尾数中零的个数。#include <stdio.h>int main(){ int n, sum=1,count=0;//sum=1是因为0!=1,count用来记录0的个数 scanf_s("%d", &n); //求n! for (int i = 1; i <= n; i++) { sum = sum * i; } //求n!里0的个数 while (n/=5) { count = cou
2021-04-01 17:09:58 79
原创 日期计算
题目:输入一个日期,求该日期距离当年最后一天的天数。#include <stdio.h>int main(){ int day = 0; int y = 0;//年 int m = 1;//月,m=1跟下面的switch(m-1)有关,如果是一月用d的值 int d = 0;//日 scanf_s("%d %d %d", &y, &m, &d); switch (m - 1) { case 11: day += 30; case 10: d
2021-04-01 17:07:03 626
原创 字母数字空格
题目描述输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。#include <stdio.h>int main(){ char c;//定义一个字符串 int letters = 0, space = 0, digit = 0, other = 0; while ((c = getchar()) != '\n')//输入字符串 { //判断是否为大小写字母 if (c >= 'a'&&c <= 'z' || c >= 'A
2021-03-27 10:30:34 168
原创 类Equation
建立一个类Equation,表达方程ax2+bx+c=0。类中至少包含以下方法:1、无参构造(abc默认值为1、1、0)与有参构造函数,用于初始化a、b、c的值;2、set方法,用于修改a、b、c的值3、getRoot方法,求出方程的根。一元二次方程的求根公式如下:一元二次方程的求解分三种情况,如下:输入输入测试数据的组数t第一组a、b、c第二组a、b、c输出输出方程的根...
2020-04-07 17:05:31 1234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人