12.9《 算法入门》 循环 文件操作

  1. 循环
    1.7744 问题

    1. <math.h>中的floor()函数 表示向下取整。

      Floor(0.5) == 0 , Floor(-1.1) == -2

      | floor(x+0.5) 表示对x四舍五入 (变为整数)|

      因为

      1<= x <2 时 floor(x) == 1

      1<=x+0.5<2 即 0.5<= x <1.5 时 floor(x + 0.5) == 1.

      由此知 floor(x+0.5)起到的作用是四舍五入

  1. A.整数 不同位数的数字求法、前几位数求法、最后几位数求法

    Eg:int n =123456789

    5位数求法:n /10000 (9-5)

    最后5位数求法:n % 100000(5)

    不同位数的数字求法:可以结合上面的两种方法算出来

    B.补充:要计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后取对应n的余数,结果不变。(这么做可以防止乘法溢出)

    Eg: 阶乘之和

未使用上述方法

  1. #include "stdafx.h"  
  2. #include <time.h>  
  3. int main(void)  
  4. {  
  5.     const int MOD = 1000000;  
  6.     int i, j, n, S = 0;  
  7.     scanf("%d", &n);  
  8.     for (int i = i; i <= n; i + _ + )  
  9.     {  
  10.         int factorial = 1;  
  11.         for (int j = 1; j <= i; j++)  
  12.         {  
  13.             factorial = factorial * j ;  
  14.         }  
  15.         S = S + factorial;  
  16.   
     
  17.         printf("%d\n", S%MOD);  
  18.         printf("Time used = %.2lf\n", (double)clock() / CLOCKS_PER_SEC);  
  19.         return 0;  
  20.     }  

    使用上述方法

  21. #include "stdafx.h"  
  22. #include <time.h>  
  23. int main(void)  
  24. {  
  25.     const int MOD = 1000000;  
  26.     int i, j, n, S = 0;  
  27.     scanf("%d", &n);  
  28.     for (int i = i; i <= n; i + _ + )  
  29.     {  
  30.         int factorial = 1;  
  31.         for (int j = 1; j <= i; j++)  
  32.         {  
  33.             factorial = (factorial * j %MOD);  
  34.         }  
  35.         S = (S + factorial) % MOD;  
  36.   
     
  37.         printf("%d\n", S);  
  38.         printf("Time used = %.2lf\n", (double)clock() / CLOCKS_PER_SEC);  
  39.         return 0;  
  40.     }  

对于clock() 和 CLOCKS_PER_SEC

printf("Time used = %.2lf\n", (double)clock() / CLOCKS_PER_SEC);

<time.h>中的 clock() 计时函数 :该程序从启动到函数调用占用CPU的时间
(输入时间、停顿时间等等都包括在内)

然后用clock()除以CLOCKS_PER_SEC 代表以"秒"为单位的时间。

可以使用echo(管道)去除输入所占时间

  1. 文件操作

①当把输入是否等于EOF作为判断条件时 需要人工输入EOF,而这个时候EOF 就是CTRL + Z (F6)

将输入、输出数据保存在文件中(freopen fopen)

A:在main()函数的入口添加:

freopen("input.txt,","r",stdin) 键盘读入函数( 比如scanf() )从 input.txt 读入

freopen("output.txt","w",stdout) 屏幕输出函数( 比如printf() )写入output.txt

函数名:freopen

函数,以指定模式重新指定到另一个文件。模式用于指定新文件的访问方式。

头文件:stdio.h

C89函数声明:


1


FILE *freopenconst char *filename, const char *mode, FILE *stream );

C99函数声明:


1


FILE *freopen(const char * restrict filename, const char * restrict mode, FILE * restrict stream);

形参说明:

filename:需要重定向到的文件名或文件路径。

mode:代表文件访问权限的字符串。例如,"r"表示"只读访问"、"w"表示"只写访问"、"a"表示"追加写入"。

stream:需要被重定向的文件流。

返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。


#include<stdio.h>

int main()

{

int a, b;

freopen("in.txt","r",stdin);

/* 如果in.txt不在连接后的exe的目录,需要指定路径如D:\in.txt */

freopen("out.txt","w",stdout); /*同上*/

while (scanf("%d%d", &a, &b) != EOF)

printf("%d\n",a+b);

fclose(stdin);

fclose(stdout);

return 0;

}

freopen中的路径 (可以是相对路径也可以是绝对路径)

当.exe和.txt在同一位置是 则是相对路径

如果不是则需要像上面那样添加指定的绝对路径

绝对路径
:是从盘符开始的路径,形如C:\windows\system32\cmd.exe相对路径:是从当前路径开始的路径,假如当前路径为C:\windows要描述上述路径,只需输入system32\cmd.exe实际上,严格的相对路径写法应为.\system32\cmd.exe其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。

B:fopen 待更

时间: 2024-10-30 06:07:03

12.9《 算法入门》 循环 文件操作的相关文章

小猿圈python入门之文件操作

学习知识要善于思考,思考,再思(考).我就是靠这个方法成为科学家的.——爱因斯坦 open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法. open() 函数常用形式是接收两个参数:文件名(file)和模式(mode). 一般用法:open(file,mode="r") 完整的语法格式

Nginx基础入门之文件操作优化及请求特殊处理介绍

本节的内容主要讲到关于nginx文件操作优化以及对客户端请求特殊处理(比如限速,不合法请求处理,是否注明nginx版本号) 一.通过nginx对客户端相关请求做特殊处理 1.1 按HTTP方法名限制用户请求 语法:limit_except method ... {...} 配置块:location Nginx通过limit_except后面指定的方法名来限制用户请求.方法名可取值包括:GET.HEAD.POST.PUT.DELETE.MKCOL.COPY.MOVE.OPTIONS.PROPFIN

git入门(3.文件操作)

三.GIT文件操作 版本控制就是对文件的版本控制,对于Linux来说,设备,目录等全是文件,要对文件进行修改.提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上. 文件状态 GIT仓库所在的目录称为工作目录,这个很好理解,我们的工程就在这里,工作时也是在这里做修改. 在工作目录中的文件被分为两种状态,一种是已跟踪状态(tracked),另一种是未跟踪状态(untracked).只有处于已跟踪状态的文件才被纳入GIT的版本控制.如下图: 当我们

第十二章 Python文件操作

12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file object name 文件名 mode 模式,比如以只读方式打开 buffering 缓冲区 encoding 返回数据采用的什么编码,一般utf8或gbk Mode Description r 只读,默认 w 只写,打开前清空文件内容 a 追加 a+ 读写,写到文件末尾 w+ 可读写,清空文件内容 r+ 可

重学Python - Day 05 - python基础 -&gt; python的文件操作:r、w、a、r+、a+ 、readline、readlines 、flush等常用的文件方法

文件的读操作 示例: 1 print("->文件句柄的获取,读操作:") 2 3 f = open('无题','r',encoding='utf8') 4 d = f.read() 5 f.close() 6 print(d) 7 8 print('->例二:') 9 f = open('无题','r',encoding='utf8') 10 e = f.read(9) 11 f.close() 12 print(e) 13 #python3中,文件中一个中英文都占位1 运

python基础:python循环、三元运算、字典、文件操作

目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执行:if语句有三种格式,如下: 在多分支的if表达式中,即使多个条件同时为真,也只会执行一个,首先测试为真: 选择执行 单分支的if语句 if CONDITION: 条件为真分支 双分支的if语句 if CONDITION 条件为真分支 else 条件不满足时分支 多分支的if语句 if CONDI

C语言入门(二十五)文件操作

文件操作  一.标准文件的读写 1.文件的打开fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char *f

003-Tuple、Array、Map与文件操作入门实战

003-Tuple.Array.Map与文件操作入门实战 Tuple 各个元素可以类型不同 注意索引的方式 下标从1开始 灵活 Array 注意for循环的until用法 数组的索引方式 上面的for是下标索引(繁琐用的不多) 下面的for是增强for循环的元素遍历索引(推荐) Map 注意左边是Key,右边是Value _(下划线也可以作为占位符,形成结构,但无名称不可以访问) 文件操作 进行了Source包的引入 .fromFile() getLines 使用了Iterator 欢迎广大爱好

Android入门之文件系统操作(一)简单的文件浏览器 (转)

Android入门之文件系统操作(一)简单的文件浏览器 (转)        1. import java.io.File; 2. import java.util.*; 3. 4. import android.app.Activity; 5. import android.content.Context; 6. import android.os.*; 7. import android.view.*; 8. import android.widget.*; 9. import androi