C语言实数格式识别代码
【问题描述】
合法的实数书写格式分一般格式和科学格式两种。分别描述如下:
一般格式为常见的书写格式,分为整数部分和小数部分两部分,中间分用小数点.分隔。整数部分最开始可能含有正号或负号,之后为不含前导零的数字串;小数部分是由0-9十种字符组成的任意长的字符串。当小数部分为0时,小数部分和小数点可以省略。
科学格式由系数部分和指数部分两部分组成,中间用英文字母E分隔。系数部分为实数书写的一般格式;指数部分为可带有正负号数字串。
例如,+2、-1.56为一般格式的实数,而6.2E-2、-9E8为科学格式的实数。
只有小数点而没有小数部分的书写格式为不合法,例如,23.,23.E16均为不合法的实数书写格式。
编程分析哪些数的书写是正确的,是用哪种方式书写的。
【输入形式】
输入文件为当前目录下的real.in。该文件包含一个字符串(长度不超过20个字符),以回车符结束,表示一个数据(无多余空格)。
【输出形式】
输出文件为当前目录下的real.out。该文件有一行。如果输入数据的书写是非法的,输出Wrong;如果输入数据是用一般格式书写的,输出“Format1”;如果该数据是用科学格式书写的,输出“Format2”。输出的末尾均要以一个回车符作为结束。
【输入样例1】
+1.23
【输出样例1】
Format1
【输入样例2】
-5.1.1
【输出样例2】
Wrong
【输入样例3】
-5.1E-2
【输出样例3】
Format2
C语言N!的分解代码
【问题描述】
将N!分解成素数幂的乘积。
【输入形式】
从标准输入读取一个整数N(1 <= N <= 30000)。
【输出形式】
结果打印到标准输出。输出格式为:p1^k1*p2^k2…其中p1,p2…为质数且ki>1。当ki=1时只输出pi,ki=0的项不输出。分解式中的素数按从小到大输出。
【输入样例】
5
【输出样例】
2^3*3*5
C语言单词连接代码
【问题描述】
对N(2≤N≤100000)个由M(2≤M≤1000)个小写字母组成的英文单词排序, 使得相邻的两个单词中前一个单词的末字母等于后一个单词的首字母。
【输入形式】
从标准输入上读入。输入文件有N(2≤N≤100000)行,每行只含一个单词,单词之间以换行符分隔,以EOF结束。
【输出形式】
输出到标准输出。输出内容占一行,以换行符结束。对于可以按上述规则排列的输入,输出yes;否则输出no。
【输入样例】
mouse
acm
malform
【输出样例】
yes
C语言strassen矩阵乘法代码
strassen矩阵乘法的C代码
【问题描述】
从文件arr.in中读入一个m行k列的整数矩阵a和一个k行n列的整数矩阵b(1 < m, k, n < 200),在标准输出上输出这两个矩阵的乘积。
【输入形式】
输入文件arr.in中有m+k行,前m行是矩阵a的元素aij,后k行是矩阵b的元素bij (-3000 < aij, bij < 3000)。
【输出形式】
输出结果为m行,每行n个元素,按整数左对齐方式输出,每个元素占相同的位数,且各个元素之间空格的最少数量应等于1。
【输入样例】
1 0
0 1
1 1
1 1
【输出样例】
1 1
1 1
C语言Gray码转换代码
【问题描述】
格雷码(Gray Code)是一种在位置传感器中常用的编码,其特点是每两个相邻的数的格雷码只有一个二进制位是不同的。例如,0-7的格雷码编码如下:
0 000
1 001
2 011
3 010
4 110
5 111
6 101
7 100
普通二进制编码到格雷码的转换方式如下:
Gn-1 = Bn-1
Gi = Bi+1 ^ Bi (0<=i<n-1,n为编码的长度)
格雷码到普通二进制编码的转换方式如下:
Bn-1 = Gn-1
Bn-2 = Gn-2 ^ Bn-1
... ...
B0 = G0 ^ B1
转换公式中的Gk和Bk分别表示格雷码和二进制编码中的第k位。编码的位序从0开始,从右向左递增。
【输入形式】
从标准输入读取数据。读入的数据为一系列的0、1字符串,长度在50个字符之内。在0、1串之前分别有选项是-b或-g,前者表示将读入的正整数作为格雷码转换成二进制码,后者表示将这些正整数作为二进制码转换成格雷码,无选项时等同于-b。选项与编码之间,以及每行前后无多余空格。输入以EOF结束。
【输出形式】
将结果打印到标准输出上。输出转换的结果,每个数占一行。
【输入样例】
-g0111
-b0011
101
【输出样例】
0100
0010
110
c语言放置正方形代码
【问题描述】
将一个矩形划分成N*M个格子,每个格子有被占用和未被占用两种情况,将一个边长为i的正方形放入矩形中,要求正方形区域中不包含被占用的格子,问共有多少种合适的放置方案。
【输入形式】
输入文件为当前目录下的squares.in。该文件第一行是一个整数i (1<i<=min(M,N)),表示正方形的边长。之后有N(1<=N <=2000)行,每行有M(1<=M<=2000)个0或1(1表示该格未被占用,0表示该格被占用)。输入以EOF结束。
【输出形式】
输出文件为当前目录下的squares.out。该文件只有一个整数输出,表示边长为i的正方形在矩形中合适的放置方案数。
【输入样例】
2
1011
1111
1110
1110
【输出样例】
5
C语言序列的第n项代码
【问题描述】
序列a(1),a(2),…,a(n)以及正整数k。对于i>1,a(i)是满足下面2个性质的最小正整数:
(1) a(i) > a(i-1);
(2) a(i) 的各位数字的和与k×a(i-1)的各位数字的和相等。
例如,a(1)=1,k=2,n=6时,该序列的前6个元素是1,2,4,8,16,23。
现给定a(1),k,n的值,计算该序列的第n项a(n)的值。
【输入形式】
输入文件为当前目录下的sequence.in。文件只有一行,包含3个整数a(1),k,n (0<a(1)<1000;0<k,n<300000)。
【输出形式】
输出文件为当前目录下的sequence.out。该输出文件只有一个整数,为序列的第n项a(n),以换行符结束。
【输入样例】
1 2 6
【输出样例】
23
C语言普通矩阵乘法代码
【问题描述】
从文件arr.in中读入一个m行k列的整数矩阵a和一个k行n列的整数矩阵b(1 < m, k, n < 200),在标准输出上输出这两个矩阵的乘积。
【输入形式】
输入文件arr.in中有m + k + 1行,前m行是矩阵a的元素aij,第m + 1行是空行,后k行是矩阵b的元素bij (-3000 < aij, bij < 3000)。
【输出形式】
输出结果为m行,每行n个元素,按整数右对齐方式输出,每个元素占相同的位数,且各个元素之间空格的最少数量应等于1。
【输入样例】
1 0
0 1
1 1
1 1
【输出样例】
1 1
1 1
C语言求自然数N倍数代码
【问题描述】
写一个程序,对于给定的一个自然数N(1<=N<=4999),和M个互不相同的十进制数字X1, X2,…,XM (M>=1), 找出N的一个最小的正倍数,使得该倍数中仅包含数字X1,X2,…,XM。
【输入形式】
输入文件为当前目录下的multiple.in,输入文件第一行为整数N,接下来M行分别列出数字 X1,X2..XM ,以EOF结束。
【输出形式】
输入文件为当前目录下的multiple.out,输出文件输出为这个倍数,如果无解输出0。在所有的测试数据中答案都不会超过500位。
【输入样例】
22
7
0
1
【输出样例】
110
C语言重复数全排列的代码
【问题描述】
输入一个字符串,字符串由字母、数字组成,可能包含重复的字符。生成这些字符的不重复的全排列,并将结果打印到标准输出上。
【输入形式】
从标准输入上读入一个由字母、数字组成的字符串,字符串的长度小于100,其中包含重复的字符。
【输出形式】
向标准输出印结果。 每个排列占1行,各字符之间无空格分隔,每行由换行符结束。各行之间不必排序,但同一个排列不得重复输出。
【输入样例】
AABB
【输出样例】
AABB
ABAB
ABBA
BABA
BAAB
BBAA
C语言选排列的输出代码
【问题描述】
求从n个自然数(1-n)中选取m个数的所有的排列形式,即求P(n,m)的所有的排列形式,且按升序排列。
【输入形式】
标准输入。输入只有一行,包括两个整数n和m,其中0<n,m<=9,二者之间以一个空白符分隔。
【输出形式】
在标准输出上输出有若干行,每一行都是符合题意的一种排列形式,每个元素间用一个空格分隔,并按升序排列。
【输入样例】
3 2
【输出样例】
1 2
1 3
2 1
2 3
3 1
3 2
C语言多项式运算的代码
【问题描述】
一元多项式A = anxn + … + a1x + a0, B = bnxn + … + b1x + b0,根据运算符+、-、*,分别计算A + B、A - B、A * B。
例如,输入样例表示要计算(3x5 + 5x3 + 6)- (9x6 + 2x5 + 6x3 + x2 + 6),结果为-9x6 + x5 - x3 - x2 。
【输入形式】
输入文件为当前目录下的poly.in。该文件由三行组成。第一行是多项式A,第二行是多项式B,第三行是一个运算符,表示所要进行的运算。多项式中除常数项外的每一项的形式为AnxN,其中An(-100<An<100)是一个整数,表示该项的系数,x是变量名,N(0<=N<100)是该项的次数。首项系数为正数时,系数前的’+’省略;当首相系数为负数时,负号与整数之间没有空格;系数为0的项不表示;除常数项外,系数为1的项不显示系数。各项与运算符之间可以有0个或多个空格符。
【输出形式】
输出结果写在标准输出上,占一行。结果多项式按降幂方式排列,各项的表示形式与输入形式相同。各项与运算符之间空一格(首项系数前负号除外)。
【输入样例】
3x5 + 5x3 + 6
9x6 + 2x5 + 6x3 + x2 + 6
-
【输出样例】
-9x6 + x5 - x3 - x2
C语言关于数据的序号的输出代码
【问题描述】
将N(1<= N <= 200000)个整数小到大连续编号,相同的数应具有相同的编号。并按这N个数输入时的顺序输出它们的编号序列。例如,设输入数据为 5 3 4 7 3 5 6,则输出数据为3 1 2 5 1 3 4。
【输入形式】
从标准输入读取数据。输入包含N个数字(1<= N <= 200000),之间由空格分隔,以回车符作为结束
【输出形式】
计算结果输出到标准输出。按这N个数输入时的顺序输出它们的编号序列。每个序号之后紧跟一个空格符,最后输出回车符。
【输入样例】
5 3 4 7 3 5 6
【输出样例】
3 1 2 5 1 3 4
C语言高精度浮点计算代码
【问题描述】
计算 k *∑(x^i), -m ≤ i ≤ n,精确到小数点后14位(最后要求四舍五入)。
【输入形式】
从文件sigma.in中顺序读入4个由空格分隔的正整数k、x、m、n。(1≤ k、x、m、n ≤ 100)。
【输出形式】
将结果写到标准输出,其中小数占14位,不足部分补零,最后输出一个回车。(输入数据保证输出结果小于2^53。)
【输入样例】
1 10 5 5
【输出样例】
111111.11111000000000
C语言计算凸多边形的面积代码
【问题描述】
给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积.
输入数据表示了如图所示的四边形。其面积为5.00。
评分标准:
本程序允许使用数学库函数,如果你的输出与标准答案相差不超过0.02则得满分。
【输入形式】
从标准输入读取N(3≤N≤15)行,每行两个数字(由空格隔开),分别表示该点的X、Y坐标(0≤X,Y≤32767)。所有点的坐标互不相同,且按顺时针次序给出。
【输出形式】
向标准输出打印一个浮点数,是该多边形的面积。该浮点数保留两位小数。
【输入样例】
3 3
3 0
1 0
1 2
【输出样例】
5.00
C语言高精度计算N的阶乘代码
【问题描述】
精确计算N的阶乘。其中,N可能是小于200的任意正整数。
【输入形式】
输入文件为当前目录下的factor.in。该文件只包含一个正整数,表示需要求该正整数的阶乘。
【输出形式】
输入文件为当前目录下的factor.in。该文件只包含一个正整数,表示需要求该正整数的阶乘。
【输入样例】
57
【输出样例】
40526919504877216755680601905432322134980384796226
602145184481280000000000000
C语言后缀式转中缀式的计算代码
【问题描述】
将由数字和四则运算符组成的后缀表达式变换为中缀表达式。输入的后缀表达式包含的运算符不超过15个。要求转换后的中缀表达式中不应出现不必要的括号。例如,整个表达式两端的括号要省略,不影响原计算顺序的括号要省略。
【输入形式】
程序从标准输入上读入一行字符串,是一个合法的后缀表达式,数字和运算符之间由空格分隔。其中的数字可以是整数,也可以是带有小数部分的浮点数。
【输出形式】
向标准输出打印结果。输出只有一行,是转换后的中缀表达式,并且 1. 各分量(包括括号)紧密输出,不使用空格进行分隔; 2. 在转换前后各运算数的出现顺序不变; 3. 浮点数保留输入时的小数位数。
【输入样例】
4 7 - 2.1 5 + * 7.1 9 - /
【输出样例】
(4-7)*(2.1+5)/(7.1-9)
C语言关于母牛问题的计算代码
【问题描述】
x年出生的母牛从第x+m年开始到第x+n年止(含, 1 < m < n)每年生小母牛一头,并在第x+p(n < p 0)年存栏母牛多少头。
【输入形式】
从标准输入上顺序读入正整数m、n、p、k。
【输出形式】
以整数方式在标准输出上输出第k年的母牛存栏数s。
【输入样例】
3 5 7 12
【输出样例】
27
c语言泊松分布的计算
【问题描述】
泊松分布是一种常用的离散型概率分布,数学期望为m的泊松分布的分布函数定义如下:
P(m, k) = mk * e-m/k! (k = 0, 1, 2, 3, …)
对于给定的m和k (0<m<2000, 0<= k < 2500),计算其概率,以科学格式输出,保留小数点后6位有效数字。
可以使用数学库函数,误差不超过0.000001。
【输入形式】
输入文件为当前目录下的poisson.in。文件中包含两个数字,分别为m,k的值。
【输出形式】
输出文件为当前目录下的poisson.out。文件中输出泊松分布的值,值以科学格式输出,保留小数点后6位有效数字。
【输入样例】
1 0
【输出样例】
3.678794e-01
c语言输出N位质数
【问题描述】
给定一个整数N(2 <= N <= 8),生成所有的具有下列特性的特殊的N位质数:其前任意位都是质数。
例如,7331即是这样一个4位的质数,因为7、73和733也都是质数。
【输入形式】
标准输入上输入一个正整数N(2 <= N <= 8)。
【输出形式】
标准输出。输出所有符合题意的N位质数,每个数占一行,且按升序排列。
【输入样例】
2
【输出样例】
23
29
31
37
53
59
71
73
79
判断出栈序列
问题描述】
对于一个栈,已知元素的进栈序列,判断一个由栈中所有元素组成的排列是否是可能的出栈序列。
比如,进栈序列为1 2 3 4,则可能的出栈序列有4 3 2 1,1 4 3 2等。而1 4 2 3就不是。
【输入形式】
从标准输入读取输入。第一行是一个整数N(3≤N≤10),代表有N个元素,其进栈序列是1 2 3 …… N。第二行是以空格分隔的1~N的数字的一个排列。
【输出形式】
向标准输出打印结果。如果该排列是可能的出栈序列,则打印“YES”,否则打印“NO”。在行末要输出一个回车符。
【输入样例】
4
1 4 3 2
【输出样例】
YES
c语言螺旋矩阵的输出
【问题描述】
输入一个自然数N(2≤N≤9),要求输出如下的螺旋矩阵,即边长为N*N,元素取值为1至N*N,1在左上角,呈顺时针方向依次放置各元素。
N=3时,相应的矩阵中每个数字位置如下图所示:
1 2 3
8 9 4
7 6 5
【输入形式】
从标准输入读取一个整数N。
【输出形式】
向标准输出输出一个N*N的螺旋矩阵,即边长为N*N,元素取值为1至N*N,1在左上角,呈顺时针方向依次放置各元素,每个数字占5个字符宽度,向右对齐,不足部分补以空格。在每一行末均输出一个回车符。