第三周总结

本周比较忙碌,没有学习很多东西

首先是一道回文素数题给我很大启发

原理就是把回文数分为两大类

第一类形如12321

第二类形如123321

而第二类都是11的倍数

所以先排除第二类,也就是说第二类回文数中只有11符合要求

之后的思路就是暴力枚举

但是这样太费时间,要枚举10的十次方个数

所以采用制造回文数的方法来减少便利的次数,12321可以由123数来制作,如此一来,10000000000长的数字可以由100000的数字来构造。

#include<stdio.h>

int is_prime(int x) 
{
      if(x == 2) 
        return 1;
	  for(int i = 2; i*i <= x; i++) 
      {
		 if(x % i == 0) return 0;
	  }
	return 1;
}
int main() 
{
	int a, b;
	scanf("%d%d", &a, &b);
	for(int i = 5; i <= 100000; i ++) 
    {
		if(i == 9 && a <= 11 && b >= 11) puts("11");
		int tmp = i/10, ans = i;
		while(tmp > 0)
        {
			ans *= 10;
			ans = ans + tmp%10;
			tmp /= 10;
		}
		if(ans > b) break;
		if(ans >= a && is_prime(ans)) printf("%d\n", ans);
	}
	return 0;
}

其次是一些关于文件函数的用法

fopen 函数说明:

作用:用来打开一个文件

格式:FILE * fopen(const char * path,const char * mode);

返回值:打开文件成功返回一个文件指针,若打开文件失败则返回NULL

fclose 函数说明:

作用:关闭一个文件流,释放文件指针

格式:int fclose( FILE *fp );

返回值:如果流成功关闭,fclose 返回 0,否则返回EOF

fgetc 函数说明:

作用:从文件指针指向的文件流中读取一个字符,读取一个字节后,光标位置后移一个字节

格式:int fgetc(FILE *stream);

返回值:返回所读取的一个字节,如果读到文件末尾或者读取出错时返回EOF(EOF是文件结束标识符,一般值为-1)

fputc 函数说明:

作用:将指定字符写到文件指针所指向的文件的当前写指针位置上

格式:int fputc (char c, File *fp);

返回值:在正常调用情况下,函数返回写入文件的字符的ASCII码值,出错时,返回EOF

fgets 函数说明:

作用:从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。

格式:char *fgets(char *buf, int bufsize, FILE *stream);

返回值:函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

fputs 函数说明:

作用:向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)

格式:int fputs(char *str, FILE *fp);

返回值:若成功返回0,失败返回EOF

fread 函数说明:

作用:从一个文件流中读数据,最多读取count个元素,每个元素size字节

格式:size_t fread ( void *buffer, size_t  size, size_t  count, FILE *stream) ;

返回值:如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回0

fscanf 函数说明:

作用:从一个流中执行格式化输入

格式:int fscanf(FILE* stream,constchar* format,[argument]);

返回值:成功返回读入的参数的个数,失败返回EOF。

fwrite 函数说明:

作用:向文件写入一个数据块

格式:size_t fwrite(const void* buffer, size_t  size, size_t  count, FILE* stream);

返回值:返回实际写入的数据块数目

本周学的大概就这些东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值