for循环的理解问题
笔者在做下题时发现了对于for循环的重大理解错误
[NOIP2013 普及组] 计数问题
题目描述
试计算在区间 111 到 nnn 的所有整数中,数字 xxx(0≤x≤90\le x\le90≤x≤9)共出现了多少次?例如,在 111 到 111111 中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 111 出现了 444 次。
输入格式
222 个整数 n,xn,xn,x,之间用一个空格隔开。
输出格式
111 个整数,表示 xxx 出现的次数。
样例输入 #1
111 1
样例输出 #1
14
提示
对于 100%100\%100% 的数据,1≤n≤1061\le n\le 10^61≤n≤106,0≤x≤90\le x \le 90≤x≤9。
练习代码为
12345678910111213141516#include<iostream>using namespace std;int main(){ int n,x,sum=0; ci ...
题目反思
[NOIP2015 普及组] 金币
题目背景
NOIP2015 普及组 T1
题目描述
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 n 天每天收到 n 枚金币后,骑士会在之后的连续 n+1 天里,每天收到 n+1 枚金币。
请计算在前 k 天里,骑士一共获得了多少金币。
输入格式
一个正整数 k,表示发放金币的天数。
输出格式
一个正整数,即骑士收到的金币数。
样例输入 #1
16
样例输出 #1
114
样例输入 #2
11000
样例输出 #2
129820
提示
【样例 1 说明】
骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 1+2+2+3+3+3=141+2+2+3+3+3=141+2+2+3+3+3=14 枚金币。
对于 100%100\%100% 的数据,1≤k≤1041\le k\le 10^41≤k ...
acm(测试方法)
注:本文根据《算法入门经典第(2)版》撰写
前言
由于程序需要测试大量用例,手动输入较为麻烦。因此可以使用文件操作。一个好的方法是用文件——把输入数据保存在文件中,输出数据也保存在文件中。这样,只要事先把输入数据保存在文件中,就不必每次重新输入了;数据输出在文件中也避免了“输出太多,一卷屏前面的就看不见了”这样的尴尬,运行结束后,慢慢浏览输出文件即可。如果有标准答案文件,还可以进行文件比较,而无须编程人员逐个检查输出是否正确。事实上,几乎所有算法竞赛的输入数据和标准答案都是保存在文件中的。
示例中采用创建date.in文件存储输入,date.out存储输出。
一、文件重定向
使用文件最简单的方法是使用输入输出重定向,只需在 main 函数的入口处加入以下两条语句:
freopen(“input.txt”, “r”, stdin);
freopen(“output.txt”, “w”, stdout);
上述语句将使得 scanf 从文件 input.txt 读入,printf 写入文件 output.txt。事实上,不只是 scanf 和 printf,所有读键盘输入、写屏 ...
memcpy函数(详解)
原理
memcpy函数是C/C语言中的一个用于内存复制的函数,声明在 string.h 中(C是 cstring)。其原型是:
1void *memcpy(void *destin, void *source, unsigned n);
作用是:以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。
函数有三个参数,第一个是目标地址,第二个是源地址,第三个是数据长度。
使用memcpy函数时,需要注意:
数据长度(第三个参数)的单位是字节(1byte = 8bit)。
注意该函数有一个返回值,类型是void*,是一个指向destin的指针。
12345678910111213141516171819202122232425262728293031void *memcpy(void *dst, const void *src, size_t size){ char *psrc; char *pdst; if (NULL == dst || NULL == src) { retur ...
Git基础知识
Git基础知识
一、git的基本操作(命令行)
1.建立仓库
在根目录输入
1234567891011git init``` 在mac、linux中隐藏了.git的文件夹,即本地git仓库。所有提交的内容都会储存在里面。 ### 2.添加文件(告诉git需要添加的文件有哪些)``` shellgit add 文件名 //单一文件git add -A //多文件,即将所有新增修改的文件全部上传``` ### 3.提交到本地仓库 ``` shellgit commit -m "初次提交/更新图片" //""内内容自定义,用来标识操作
4.建立本地仓库与github的联系
12345git remote add origin https://github.com/用户名/仓库名.git //github生成htttps链接``` ### 5.上传到仓库``` shellgit push -u origin master
git push 到远程仓库的master(主分支)上。
12345678info: please comp ...
C指针与地址
C指针与地址
在C语言的学习过程中,常理不清指针(即一个变量的地址)和指针变量(专门用来存放另一变量的地址(指针)的变量)的关系,因此通过程序打印地址运行结果,来分析加强理解。以此记录学习过程中的心得,希望能帮到大家,感谢指正。
前言
一、代码示例
代码如下:
1234567891011121314151617181920212223#include <stdio.h>int main(){ int a=88,b=60 ; int *p; p=&a;//指向a的地址 printf("%p\n",&a); printf("%#p",p);//以十六进制的形式输出 printf (" %p ",*p); printf(" %p\n",&p); printf("%d",p); printf (" %d ",*p); printf(" %d\n&quo ...