C语言辅导
小光~
平庸之辈
展开
-
7-2 换硬币(20 分)
一、题目二、个人理解此题发现数据量不是很大,于是我们可以采用暴力法,直接遍历,然后哦判断即可。另外要注意每枚硬币至少为一枚。C语言:#include <stdio.h>int main(){ int x, count = 0; scanf("%d", &x); for (int i = 19; i > 0; i--) { for (int j = 49; j原创 2017-11-17 09:00:24 · 6444 阅读 · 0 评论 -
7-6 验证“哥德巴赫猜想”(20 分)
一、题目二、个人理解此题本质上就是考素数判断。 思想很简单,但是最大数会运行超时。这里介绍一种简单的素数,即只对奇数进行判断,并对数进行一次开方。在此我希望大家即使不掌握高深的素数判断算法,也应该掌握这个简单又实用的算法。C语言:#include <stdio.h>int is_prime(int n){ if (n < 2) { return 0; }原创 2017-11-17 09:39:41 · 16546 阅读 · 3 评论 -
7-7 找完数(20 分)
一、题目二、个人理解此题就是先进行因子的计算,因为必须要判断所有因子和是否等于数字,所以要保存以前的因子,这里我们可以采用数组来进行保存。C语言:#include <stdio.h>#include <string.h>#define maxn 10000int main(){ int m, n, a[maxn], count = 0; scanf("%d%d", &m, &n原创 2017-11-17 09:45:28 · 9875 阅读 · 0 评论 -
7-1 求e的近似值(15 分)
一、题目二、个人理解此题主要的关键点在于如何不运行超时。我们可以发现题目要求保留小数点后八位,于是我们测试数据发现当n>11时,保留8位的数据就不变了,于是我们可以大胆舍弃以后位数的计算。对于此类题目,我们要仔细读题目,发现它让我们保留到多少位,然后进行测试,不要盲目的去改变算法。C语言:#include <stdio.h>int factorial(int n){ int factori原创 2017-11-17 08:56:13 · 19403 阅读 · 5 评论 -
7-8 打印九九口诀表(15 分)
一、题目 二、个人理解此题主要考察循环。主要点就在于格式的输出,细心点即可。C语言:#include <stdio.h>int main(){ int n; scanf("%d", &n); for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { if (i * j原创 2017-11-17 10:00:38 · 7981 阅读 · 2 评论 -
7-5 输出整数各位数字(15 分)
一、题目二、个人理解此题估计出题人是想我们不断地进行取位数来做,但是实际上我们直接用字符串输入,再输出即可。C语言:#include <stdio.h>#include <string.h>int main(){ char s[32]; scanf("%s", s); for (int i = 0; i < strlen(s); i++) { printf原创 2017-11-17 09:17:09 · 10597 阅读 · 0 评论 -
7-3 输出三角形字符阵列(15 分)
一、题目二、个人理解此题本质来说就是输出n个字母n-1个字母....1个字母主要就是模拟这个过程,我们可以另外引进一个变量进行字母的变化,另外题目保证字母在26个之内。C语言:#include <stdio.h>int main(){ int n, count = 0; scanf("%d", &n); for (int i = n; i > 0; i--) {原创 2017-11-17 09:04:54 · 26915 阅读 · 1 评论 -
7-4 求幂级数展开的部分和(20 分)
一、题目二、个人理解此题如果按常规思路做的话,必然会碰到一个问题,即其中项数的值会溢出(因为C语言最多只能保存2的64次方-1),从而变为负数。所以我们可以换个思路,采用边化简边计算。C语言:#include <stdio.h>#include <math.h>#define eps 1e-5 //0.00001int main(){ double x, sum = 1.0;原创 2017-11-17 09:12:33 · 22333 阅读 · 23 评论