打表法与freopen 函数

  • 打表法
  • freopen函数
  • 注意事项
    • 打表法有很多限制

打表法

简单的说就是

  1. 预先处理
freopen("C:\\Users\\14640\\Desktop\\out.txt", "w", stdout);//这里我把表(out.txt)放到了自己的桌面

注意这里用的是双斜杠进行文件的转入
如果不加路径则默认为项目目录

  1. 然后写入数据
need();//自己的函数主体
  1. 结束数据输入
fclose(stdout);//关闭重定向输入 
  1. 最后运用数据
    比如复制数据----->>>对应的程序(函数)

freopen函数

  1. 用fopen()函数打开的文件,我们录入文件时还要特意去更改程序的输入方法,scanf()->fscanf();
    而feropen则不用
  2. stdout(Standardoutput)标准输出
    stdin(Standardinput)标准输入
  3. “r” 打开一个用于读取的文件。该文件必须存在。
    “w” 创建一个用于写入的文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。
freopen("yuan.in","r",stdin);
freopen("yuan.out","w",stdout);fclose(stdin);
fclose(stdout);

链接:https://ac.nowcoder.com/acm/contest/3947/G 来源:牛客网

题目描述

Nancy喜欢博弈! Johnson和Nancy得到了一个神奇的多重集合,仅包含一个正整数n,两个人轮流进行操作。
一次操作可以将集合中一个数字分解为它的任意两个非1的因数,并加入集合中。
他们想知道,在Johnson和Nancy绝顶聪明的情况下,如果Nancy先手进行操作,最后谁没有办法继续操作了呢? 输入描述:
第一行:一个整数n。数据满足:1≤n≤957181 \leq n \leq 957181≤n≤95718。 输出描述:
共一行:一个字符串,表示最后谁(Johnson或者Nancy)无法进行操作。

示例1

输入

4

输出

Johnson

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define ll long long
void prime(int nn);//判断是否为质数
bool johnson=false;
int cc=0,n;//cc是质数个数,n是题目要求输入的数
int primes[9225];//95718以内的所有质数void gets()//将打表的数据进行读取(写进primes[]数组)
{primes[0] = 2, primes[1] = 3, primes[2] = 5, primes[3] = 7, primes[4] = 11, primes[5] = 13, primes[6] = 17;//这里我只能简单的列举一下了
}//打表得到的数据...全部粘贴的时候电脑都会卡一下,555555可怜,这里由于数据太多导致放不到博客上,坑人啊
void need()
{for (int i = 2; i < 95718; i++){prime(i);}cout << "一共有" << cc << "个primes\n";
}void prime(int nn)
{bool p = true;//用于判断是不是质数for (int i = 2; i <= sqrt(n); i++){if (n%i==0){p = false;continue;}}if (p)//如果是质数{printf("primes[%d]=%d,",cc,n);//这里写的就是可以直接复制粘贴到别的函数体的格式(有",")cc++;}
}void mm(int n)//解题函数(递归跑一下)
{for (int i = 0; i < 9224; i++){if (n == primes[i])//结束n为质数{if (johnson)//偶数次Johnson{cout << "Johnson";}else//奇数次Nancy{cout << "Nancy";}break;}//n为合数if (n % primes[i] == 0){johnson = !johnson;//johnson取反,奇数次Johnson,偶数次Nancy//cout << johnson <<"\n";//用于测试数据mm(n / primes[i]);return;}}
}
int main()
{//freopen("C:\\Users\\14640\\Desktop\\out.txt", "w", stdout);//这里我写进了自己的桌面(方便查看)//need();//产生95718以内的所有质数(prime)//fclose(stdout);//这三个先运行,产生out.txt(对应的表格)(即打表)gets();cin >> n;mm(n);return 0;
}

注意事项

打表法有很多限制

  • 步骤多,操作复杂
  • 很多的平台在提交代码的时候都会有字数限制(这就极大的限制了打表法)
  • 如果有别的更好的算法或者较为简单的代码,尽量还是不用打表法

打表法与freopen 函数相关推荐

  1. sin查找表 matlab,FPGA查找表法sin函数的实现

    实验一Sin(x)函数的计算 一.实验要求 1.系统可以根据输入的角度(或弧度)x,显示相应的sin(x)数值,保证角度精度≤0.1度. 2.编辑测试激励文件,进行相关测试,注意测试的完备性. 3.根 ...

  2. 正切函数的查表法实现

    在嵌入式领域,三角函数运算比较影响效率,可以使用查表法提高效率 //1, 正切函数值表,90度时取值1000,这个还是浮点运算的,还是不够 const double TAN[91] = { 0,0.0 ...

  3. 【除留余数法定义hash函数+线性探测法解决hash冲突】数据结构实验之查找七:线性之哈希表

    Think: 1知识点:除留余数法定义hash函数+线性探测法解决hash冲突 数据结构实验之查找七:线性之哈希表 Time Limit: 1000MS Memory Limit: 65536KB P ...

  4. 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度

    STM32查表法读NTC值并显示温度 #include "stm32f10x.h"Y'+F0IZ+ #include "delay.h"pU'`9fLi_ #i ...

  5. crc16modbus查表法_查表法计算CRC16校验值

    /******************************************************************************* * Copyright (c) 201 ...

  6. FPGA之道(63)“万能”的查表法

    文章目录 前言 "万能"的查表法 正弦波发生器示例 前言 又好几天没更新了,这就是又停止了读书的节奏,终于在毕业论文可以稍微舒缓下来的时候更新了博客,完成一个系列,读完一本书等等都 ...

  7. 查表法实现反正切_关于python实现CRC32的应用和总结

    关于python实现CRC32的应用和总结 目前使用的Crc计算包含Crc32和Crc32mpeg2两种计算方式. 循环冗余检验 CRC 差错检测技术能够证明数据是完整的,是无差错的(只是非常近似的认 ...

  8. 空间换时间,查表法的经典例子

    前言 上一篇分享了:C语言精华知识:表驱动法编程实践 这一篇再分享一个查表法经典的例子. 我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移 ...

  9. crc16码表的使用_查表法计算CRC16校验值

    CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X ...

最新文章

  1. SP5971 LCMSUM
  2. [Java] Hashcode的作用
  3. Android BLE开发(一):串口调试
  4. java.io包有哪些方法_java.io包下常用类及常用方法介绍
  5. go 的des加解密
  6. CentOS6 YUM安装MariaDB10.3.10
  7. mysql中的钱null_MySQL数据库中null的知识点总结
  8. [渝粤教育] 西南科技大学 现代制造系统 在线考试复习资料2021版
  9. Navicat执行sql文件
  10. html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码
  11. 【Unity】制作动画
  12. 微信个人号有哪些好玩的自动回复?自动回复话术分享
  13. 解锁用户 修改用户登录尝试次数无限
  14. tensorflow构建神经网络回归分析可视化
  15. 不能说的hidden
  16. Linux学习~树莓派gpio控制
  17. 自定义九宫格控件NineGridLayout ,实现微信朋友圈图片九宫格显示
  18. C++ enum前置声明
  19. php将json转化成数组,php如何把json转换成数组
  20. php中::双冒号作用

热门文章

  1. 贝索斯宣布“退位”,去追寻“诗和远方”
  2. js中转换json对象方法详解及使用案例
  3. Java语言的File类总结
  4. AutoCAD二次开发2-.NET API参考文档
  5. AutoRunner 功能自动化测试项目实训之手工添加对象(十六)
  6. 基于C+++FLTK实现(WinForm)超市收银系统【100010032】
  7. 《亚马逊逆向工作法》读书笔记
  8. 盲盒商城源码开源完整版附搭建教程H5UNIAPP
  9. 【软考】系统集成项目管理工程师(六)项目整体管理
  10. 二进制转换为十六进制