int函数

2020年3月8日NOIP课程知识整理

*爱你&永不变心* 提交于 2020-03-09 18:24:51
一、高精度计算 这一次课程主要讲了高精度加、减、乘。 首先,定义一个高精度的结构体,储存这个数字的长度、和这个数字本身。 1 struct gaojing 2 { 3 int n,z[2333]; 4 5 gaojing() 6 { 7 n=1; 8 memset(z,0,sizeof(z)); 9 } 10 11 void init() 12 { 13 scanf("%s",s+1); 14 int l=strlen(s+1); 15 reverse(s+1,s+l+1); 16 17 n = l; 18 for (int a=1;a<=n;a++) 19 z[a] = s[a]-'0'; 20 } 21 22 void print() 23 { 24 for (int a=n;a>=1;a--) 25 printf("%d",z[a]); 26 } 27 }; 1、高精度加法 只需要将数字当做字符串读入,在一位一位地相加,考虑进位即可。 这里还需要注意的一点是,我们在写高精计算函数时,参数最好要读取地址,而不是直接读取字符串。这样如果这个字符串很大,参数进入时还要把这个很大的字符串复制一遍,既消耗时间,又消耗内存。 1 gaojing operator+(const gaojing &a,const gaojing &b) 2 { 3 gaojing c; 4 c.n =

带有重复元素数组的解压缩

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-09 15:57:29
题目来源是隔壁班级老师c++实验课的题目,看着蛮变态的,比笔者班级的实验题难的不是一点半点,那么具体怎么实现呢 核心的思路来源与以前写过的连续几个连续输入的整型数,每种数字一共连续出现过几次,看看它的代码长什么样 int currval = 0 , val = 0 ; if ( std :: cin >> currval ) { int cnt = 1 ; while ( std :: cin >> val ) { if ( val == currval ) ++ cnt ; else { std :: cout << currval << " occurs " << cnt << " times" << std :: endl ; currval = val ; cnt = 1 ; } } std :: cout << currval << " occurs " << cnt << " times" << std :: endl ; } 这个代码很简单,我就没加注释了,那么解压缩数组的题目要求和这道题有极其相似的地方,都是连续的数字,都要输出连续出现了几次,只不过要求把单独出现的数字特殊化处理以及提供解压的函数,实际上本质是没有太大改变的。那么怎么对单独出现的数字特殊化处理呢,笔者采用的方法是:遇到单独出现的数字,在压缩结果的这个数组中(以下简称result),相应的位置用

作业3-类与对象(中)

我与影子孤独终老i 提交于 2020-03-09 15:33:39
先回顾一下第三次课学了啥: 1.this指针(指向成员函数所作用的对象) 2.静态成员 3.成员对象和封闭类 4.友元 5.常量成员函数 静态成员函数中,不能访问/调用非静态成员变量/函数,因为解释不了是在用哪个对象的。 如果想在对象生成时统计某项数据,消亡时减去,就有必要就要自己写复制构造函数,来避免复制出一个对象没有增加但消亡却减少的情况。 封闭类的初始化:通过封闭类的构造函数的初始化列表。 友元类之间的关系不能继承或传递。 常量对象:在前面加const; 常量函数:在后面加const 作业: 1.apple(静态成员) 1 //程序填空,使其输出4 5 1 2 #include <iostream> 3 using namespace std; 4 class Apple { 5 // 在此处补充你的代码 6 private: 7 static int nTotalNumber; //静态成员变量 8 public: 9 Apple(){ 10 nTotalNumber++; 11 } 12 ~Apple(){ 13 nTotalNumber--; 14 } 15 static void PrintTotal() { //静态成员函数只能访问静态成员变量,否则解释不通是哪个对象的成员变量 16 cout << nTotalNumber << endl; 17 } 18 19

程序员面试金典-面试题 05.06. 整数转换

你离开我真会死。 提交于 2020-03-09 14:58:02
题目: 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例1: 输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2 示例2: 输入:A = 1,B = 2 输出:2 提示: A,B范围在[-2147483648, 2147483647]之间 分析: 很容易的一道题,统计两个数每一位不同的次数,便是需要改变的位数。 程序: class Solution { public int convertInteger(int A, int B) { int res = 0; int num = 1; for(int i = 0; i < 32; ++i){ if((A & num) != (B & num)) res++; num <<= 1; } return res; } } 来源: https://www.cnblogs.com/silentteller/p/12448507.html

hdu 2012 素数判定(素数筛)

陌路散爱 提交于 2020-03-09 13:50:35
Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。 Input 输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。 Output 对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。 Sample Input 0 1 0 0 Sample Output OK 解:这是一个开口向上的2次函数,区间内最大值为2591. #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <cmath> #include <queue> #include <deque> #include <cmath> #include <map> using namespace std; typedef long long ll; const double inf=1e20; const int maxn=3000;//>2591 const int mod=1e9+7; int vis[maxn]; int main(){ int n

xcode如何查看callstack

拥有回忆 提交于 2020-03-09 12:09:47
xcode中查看方法调用的callstack有三种办法,推荐第2种,下面第四种是对异常的trace,需要时也可以用。 1,alloutput输出窗口输入lldb命令: bt 据说gdb也是bt命令,bt通用啊,哈哈 2, NSLog (@ "%@" ,[ NSThread callStackSymbols ]); 3,加入 #import <execinfo.h> void PrintBacktrace ( void ) { void *callstack[ 128 ]; int frameCount = backtrace (callstack, 128 ); char **frameStrings = backtrace_symbols (callstack, frameCount); if ( frameStrings != NULL ) { // Start with frame 1 because frame 0 is PrintBacktrace() for ( int i = 1 ; i < frameCount; i++ ) { printf ( "%s\n" , frameStrings[i]); } free (frameStrings); } } 4,如果是为了跟踪抛异常时候的callstack,可以把main函数改成下面这样子 #import <UIKit

二叉树的平衡检查、数字分类

浪子不回头ぞ 提交于 2020-03-09 10:49:58
1.在 Internet 中实现信息浏览查询服务的是(C) A DNS B FTP C WWW D ADSL 解析: WWW 是一种建立在 Internet 上的全球性的、交互的、动态的、多平台的、分布式的,超文本超媒体信息查询系统,也是建立在 Internet 上的一种网络服务。 2.在 OSI 分层模型中,把传输的比特流划分为帧,是哪一层的功能(C ) A 物理层 B 网络层 C 数据链路层 D 传输层 3.已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key) = key%7 计算散列地址,并散列存储在散列表A【0…6】中,若采用线性探测方法解决 冲突,则在该散列表上进行等概率成功查找的平均查找长度为 C A 1.5 B 1.7 C 2.0 D 2.3 解析: 4.标题:二叉树平衡检查 【二叉树平衡检查】 实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。 给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。 public class TreeNode { int val = 0 ; TreeNode left = null ; TreeNode right = null ; public TreeNode ( int val ) { this . val

C++类所占内存大小计算

旧城冷巷雨未停 提交于 2020-03-09 10:41:23
C++类所占内存大小计算 转载时请注明出处和作者联系方式 文章出处: http://blog.csdn.net/chenchong08 作者联系方式: vision_chen@yeah.net 说明:笔者的操作系统是32位的。 class A {}; sizeof( A ) = ? sizeof( A ) = 1 明明是空类,为什么编译器说它是1呢? 空类同样可以实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.所以sizeof( A )的大小为1. class B { public: B() {} ~B() {} void MemberFuncTest( int para ) { } static void StaticMemFuncTest( int para ){ } }; sizeof( B ) = ? sizeof( B ) = 1 类的非虚成员函数是不计算在内的,不管它是否静态。 class C { C(){} virtual ~C() {} }; sizeof( B ) = ? sizeof( B ) = 4 类D有一个虚函数,存在虚函数的类都有一个一维的虚函数表叫虚表,虚表里存放的就是虚函数的地址了,因此,虚表是属于类的。这样的类对象的前四个字节是一

C++类所占内存大小计算

落花浮王杯 提交于 2020-03-09 10:29:22
C++类所占内存大小计算 文章出处:http://blog.csdn.net/chenchong08 作者联系方式:vision_chen@yeah.net 说明:笔者的操作系统是32位的。 class A {}; sizeof( A ) = ? sizeof( A ) = 1 明明是空类,为什么编译器说它是1呢? 空类同样可以实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.所以sizeof( A )的大小为1. class B { public: B() {} ~B() {} void MemberFuncTest( int para ) { } static void StaticMemFuncTest( int para ){ } }; sizeof( B ) = ? sizeof( B ) = 1 类的非虚成员函数是不计算在内的,不管它是否静态。 class C { C(){} virtual ~C() {} }; sizeof( B ) = ? sizeof( B ) = 4 类D有一个虚函数,存在虚函数的类都有一个一维的虚函数表叫虚表,虚表里存放的就是虚函数的地址了,因此,虚表是属于类的。这样的类对象的前四个字节是一个指向虚表的指针,类内部必须得保存这个虚表的起始指针

C++类所占内存大小计算

喜你入骨 提交于 2020-03-09 10:16:56
C++类所占内存大小计算 说明:笔者的操作系统是32位的。 class A {}; sizeof( A ) = ? sizeof( A ) = 1 明明是空类,为什么编译器说它是1呢? 空类同样可以实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.所以sizeof( A )的大小为1. class B { public: B() {} ~B() {} void MemberFuncTest( int para ) { } static void StaticMemFuncTest( int para ){ } }; sizeof( B ) = ? sizeof( B ) = 1 类的非虚成员函数是不计算在内的,不管它是否静态。 class C { C(){} virtual ~C() {} }; sizeof( B ) = ? sizeof( B ) = 4 类D有一个虚函数,存在虚函数的类都有一个一维的虚函数表叫虚表,虚表里存放的就是虚函数的地址了,因此,虚表是属于类的。这样的类对象的前四个字节是一个指向虚表的指针,类内部必须得保存这个虚表的起始指针。在32位的系统分配给虚表指针的大小为4个字节,所以最后得到类C的大小为4. class D { D(){} virtual ~D(