- 博客(16)
- 资源 (4)
- 收藏
- 关注
原创 最大公因数、最小公倍数、最简约分
求最大公因数:辗转相除法有一个高大上的名字:欧几里得法。下面模拟辗转相除法求a, b的最大公因数:int gcd(int a, int b){ return b == 0 ? a:gcd(b, a%b);}求最小公倍数://最小公倍数=两数的乘积/最大公约数,所以可在最大公约数的基础上求最小公倍数int lcm(int x,int y){ int gcd=gcd(x,y); return (x*y)/gcd;}最简约分:约分:分子和分母除去最大公因数/*
2021-09-22 21:16:18 529
原创 打印杨辉三角
#include <stdio.h>int main(){ int a[10] = {1}; int n; scanf("%d", &n); for(int i = 0; i < n; i++) { for(int j = 0; j <= i; ++j) //输出i+1行 { printf("%d ", a[j]); } printf(
2021-04-12 08:51:09 74
原创 问题 H: 例题5-8 Fibonacci数列
问题 H: 例题5-8 Fibonacci数列时间限制: 1 Sec 内存限制: 128 MB题目描述输入一个正整数n,求Fibonacci数列的第n个数。Fibonacci数列的特点:第1,2个数为1,1。从第3个数开始,概述是前面两个数之和。即:F(x)= F(x-1)+F(x-2), x>2; 1, x<=2;要求输入的正整数n不超过50.输入一个不超过50的正整数输出Fibonacci数列的第
2021-04-10 20:28:04 88
原创 7-18 二分法求多项式单根 (20 分)
7-18 二分法求多项式单根 (20 分)二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f®=0。二分法的步骤为:检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则如果f(a)f(b)<0,则计算中点的值f((a+b)/2);如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2,b],
2021-03-25 17:19:19 170
原创 7-17 爬动的蠕虫 (15 分)
7-17 爬动的蠕虫 (15 分)一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。输出格式:在一行中输出蠕虫爬出井
2021-03-17 21:39:46 133
原创 7-16 求符合给定条件的整数集 (15 分)
7-16 求符合给定条件的整数集 (15 分)给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入格式:输入在一行中给出A。输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。输入样例:2输出样例:234 235 243 245 253 254324 325 342 345 352 354423 425 432 435 452 453523 524 532 534 542 543关键
2021-03-17 18:24:16 181
原创 c语言-函数总结
1.函数概念函数可以作为大型程序中实现独立功能的构建块。黑盒视角:函数的形参和其内部的局部变量是函数私有的,所以不同函数内的同名变量是不同的,而且函数不可以直接访问到其他函数的变量。注意:(1)所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的。(2)函数分类:①无参函数:主调函数不向被调用函数传递数据。无参函数一般用来执行指定的一组操作。②有参函数:主调函数向被调用函数传递数据。2.函数定义(1)定义无参函数的一般形式为:类型标识符 函数名(){声明部分语句部分}类
2021-01-28 17:21:35 664
原创 C - N皇后问题
C - N皇后问题在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input1850Sample Output19210...
2021-01-05 18:26:33 354
原创 B - 排列2
B - 排列2Ray又对数字的列产生了兴趣:现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。Output对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。每组输出数据间空一行,最后一组数据后面没有空行。Sample Input1 2 3 4 1 1 2 3 0 1 2 3
2021-01-04 21:13:32 213
原创 A - 数的划分
A - 数的划分将整数n 分成 k份,且每份不能为空,任意两个方案不相同(不考虑顺序) 例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5 1,5,1 5,1,1问有多少种不同的分法。输入格式第一行有两个整数n,k (6<n≤200,2≤k≤6)输出格式1 个整数,即不同的分法个数。Sample Input7 3Sample Output4解题思路设 f(n,m) 为整数 n 拆分成 m 个数字的方案数.那么对于每一个情况一定可以分为以下两种情况,
2021-01-04 20:46:16 734
原创 7-15 计算圆周率
7-15 计算圆周率 (15分)根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。输入格式:输入在一行中给出小于1的阈值。输出格式:在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。输入样例:0.01输出样例:3.132157#include <stdio.h>int main(){ double frac = 1, tip = 1, tips = 1,sum = 0, n = 1, a = 1; int cnt = 0;
2020-12-21 10:30:33 641
原创 7-14 求整数段和 (15分)
7-14 求整数段和 (15分)给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。输入样例:-3 8输出样例:-3 -2 -1 0 12 3 4 5 67 8Sum = 30i 计录已
2020-12-21 09:28:26 157
原创 7-5 表格输出
7-5 表格输出 (5分)本题要求编写程序,按照规定格式输出表格。输入格式:本题目没有输入。Province Area(km2) Pop.(10K)Anhui 139600.00 6461.00Beijing 16410.54 1180.70Chongqing 82400.00 3144.23Shanghai 6340.50 1360.26Zhejiang 101800.00 4894.00#include<stdio.h>int main(){ printf(
2020-12-17 10:44:07 105
原创 7-4 BCD解密
7-4 BCD解密 (10分)BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。输入格式:输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换
2020-12-17 10:30:24 109
原创 7-3 逆序的三位数
7-3 逆序的三位数 (10分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321/*7-3 逆序的三位数 (10分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。*/#include <s
2020-12-17 10:19:16 104
原创 PTA基础题7-2 然后是几点
7-1 厘米换算英尺英寸 (15分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6注意区分整数部分和小数部分。#include <stdio.h>
2020-12-16 21:28:17 932
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人