求取满足
#include
int main()
{
int i,j,x= 0;
for (i = 0; i < 2; i++)
{
x++;
for (j = 0; j < -3; j++)
{
if (j % 2)
continue;
x++;
}
x++;
}
printf("x=%d\n", x);
}
#include
#include
int main()
{
float x, y, z;
scanf("%f,%f",&x,&y);
z = x / y;
while (1)
{
if (fabs(z) > 1.0)
{
x = y;
y = z;
z = x / y;
}
else
break;
}
printf("%f\n",y);
}
锻炼身体吧(10分)
题目内容:
沫沫,灰灰和渣渣去锻炼身体,如果对他们跑步的距离分别只计整数 a、 b、 c,由于他们身高的差距,造成了 a<=b<=c,并且渣渣跑了N米之后就再也跑不动了。但是,按照他们事先的约定: 只有当 c*c==a*a+b*b 时,他们的锻炼才有效果。
现在他们三个人想知道,如果渣渣的极限N已知,那么有多少种有锻炼效果的跑步方案(即a, b, c有多少种可能的取值)。
输入格式:
一个整数N,表示渣渣的体力极限, N <= 5000。
输出格式:
一个整数,代表他们跑步方案的个数。
Hint:对于输入N=5,有方案 a=3, b=4, c=5, 共一种。
输入样例:
5
输出样例:
1
时间限制:500ms内存限制:32000kb
寻找特殊偶数(10分)
题目内容:
有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。
输入格式:
所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。
输出格式:
列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。
输入样例:
3000 3020
6040 6090
0 0
输出样例:
3012 3014 3016 3018
counter=4
6042 6048 6052 6054 6058 6072 6074 6078 6082 6084
counter=10
输入样例:
9 101
87 -1
0 0
输出样例:
Error
Error
求最小 m 值(10分)
题目内容:
求满足下列不等式的最小 m。
1 + 2 + 3 + 4 + …… + m ≥ n
例如:n=100,当 m =14 时,满足:1+2+3+4+…+13=91<100,而 1+2+3+4+……+14=105>100。
输入格式:
n
输出格式:
m
输入样例:
100
输出样例:
14
时间限制:500ms内存限制:32000kb
第六章编程作业
1数字正方型(10分)
题目内容:
这是双重循环的入门题目,大家来看看,你会做吗?
输入 n 的值,输出如下例( n=4 )所示的由数字组成的正方型。(字母中间是两个空格)
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
输入格式:
n
输出格式:
数字组成的正方型
输入样例:
1
输出样例:
1
时间限制:500ms内存限制:32000kb
空心字符菱形(10分)
题目内容:
根据菱型起始字母和菱形的高度,打印空心的由字符组成的菱形。
输入格式:
菱型起始字母和菱形的高度。
输出格式:
参照样例,打印空心的由字符组成的菱形。
输入样例:
C 4
输出样例:
C[回车]
D D[回车]
E E[回车]
F F[回车]
E E[回车]
D D[回车]
C
时间限制:500ms
邮票组合(10分)
题目内容:
我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。
现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可相同,可不同。
输入格式:
四种邮票的面值。
输出格式:
用这四种面值组成的邮资最大的从1开始的一个连续的区间。
说明:
如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。
名词解释:
邮资:就是你寄东西需要花多少钱。
邮票面额:是由国家发行的具有固定价格的花纸片,被称为邮票。
如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以
采用不同的组合得到240的邮资,例如:采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样一种邮资。
输入样例:
1 4 12 21
输出样例:
The max is 71.
时间限制:500ms内存限制:32000kb
火锅火锅和火锅(10分)
题目内容:
众所周知,沫沫以火锅为生。在E8的聚餐活动中,他经常卖萌卖无辜领着大家吃火锅。。
有一天,沫沫听说学校附近的哺呷哺呷在某现充的赞助下有一个优惠活动,只需30软妹币,对每个客人,它会上N道菜,但是客人只能挑选其中连续上的一些菜。
于是他非常兴奋的拉着灰灰和渣渣去吃火锅去啦。
沫沫是一个十分挑食的人,所以他对每一道菜都有一个愉快度(当然因为他的挑食,某些事物的愉快度会是负数)。
为了让沫沫能非常愉快的享受这次聚餐,善解人意的灰灰和渣渣决定帮他计算,他们应该怎么选择菜才能使沫沫最开心地吃完这次聚餐。
输入格式:
第一行是一个整数T,(T <= 10)表示测试案例的个数
对于每个测试案例,第一行是一个整数N,( 1<=N <= 10000)表示菜的个数
接下来的N个数字,第i个数字si表示沫沫对第i道菜的愉快度。( -1000 <=si <= 1000)
PS:由于CF又被血虐掉rating,所以沫沫的起始愉快度是0
PPS:沫沫完全可能得到一个为负值的愉快值, poor 沫沫。。
输出格式:
对于每个样例,输出一个数字,表示沫沫吃完之后愉快度的最大值。
HINT:
对于 5
6 -1 5 4 -7
我们选择6, -1, 5, 4这四道菜(注意必须是连续的,所以不能跳过-1)
做完后请思考,如果N的范围是1<=N<=100000呢?
输入样例:
2
5
6 -1 5 4 -7
7
0 6 -1 1 -6 7 -5
输出样例:
14
7
时间限制:500ms内存限制:32000kb
组成最大数(10分)
题目内容:
任意输入一个自然数,输出该自然数的各位数字组成的最大数。
输入格式:
自然数 n
输出格式:
各位数字组成的最大数
输入样例:
1593
输出样例:
9531[回车]
时间限制:500ms内存限制:32000kb
回文数(10分)
题目内容:
输出所有不超过n(取n<256)的、其平方具有对称性质的正整数(也称为回文数)。
如: 1*1=1; 2*2=4;3*3=9;11*11=121;1,2,3,11是回文数。
输入格式:
输入n(n<256)
输出格式:
输出所有不超过n的回文数
输入样例:
3
输出样例:
1[回车]
2[回车]
时间限制:500ms内存限制:32000kb
洗牌(10分)
题目内容:
假设我们有 2n 张牌,它们以 1, 2, …, n, n+1, …, 2n
编号并在开始时保持着这种顺序。一次洗牌就是将牌原来的次序变为 n+1, 1, n+2, 2, …, 2n, n,也就是将原来的前 n
张牌放到位置 2, 4, …, 2n,并且将余下的 n 张牌按照他们原来的次序放到奇数位置 1, 3, …,
2n-1。已经证明对于任何一个自然数 n,这 2n 张牌经过一定次数的洗牌就回到原来的次序。但我们不知道对于一个特定的
n,需要几次洗牌才能将牌洗回原来的次序。
输入格式:
牌张数的一半n,即初始情况下一共有2n张牌,n为int型整数
输出格式:
将牌洗回原来的次序所需要的洗牌次数
输入样例:
10
输出样例:
6[回车]
时间限制:500ms内存限制:32000kb
子数整除(10分)
题目内容:
对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数20207可以拆分成:
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1、sub2、sub3都可被K整除。
输出时请按照由小到大的顺序排列(每行输出一个数)。
输入格式:
一个正整数K
输出格式:
请按照由小到大的顺序排列(每行输出一个数)
输入样例:
15
输出样例:
22555[回车]
25555[回车]
28555[回车]
30000[回车]
时间限制:500ms内存限制:32000kb
第七周
1 单词排序(10分)
题目内容:
输入 5 个单词,将它们按从大到小的顺序排列后输出。
输入格式:
5个单词
输出格式:
排序后的顺序
输入样例:
BASIC[回车]
C++[回车]
Pascal[回车]
C[回车]
Fortran[回车]
输出样例:
Pascal[回车]
Fortran[回车]
C++[回车]
C[回车]
BASIC[回车]
2 寻找矩阵的鞍点(10分)
题目内容:
二维数组中的鞍点,即该位置上的元素是所在行上的最大值,是所在列上的最小值。
二维数组也可能没有鞍点。
输入一个二维数组的行数n,列数m,二维数组的诸元素值;输出数组的鞍点,以及鞍点所在的行列号。
输入格式:
第一行为矩阵的行数和列数,从第二行开始,为矩阵本身(假设输入的矩阵只有0和1个鞍点)
输出格式:
数组的鞍点,以及鞍点所在的行列号 (下标从0开始)
输入样例1:
3 4
1 3 5 3
2 3 4 1
3 2 6 7[回车]
输出样例1:
Point:a[1][2]==4[回车]
输入样例2:
3 4
1 2 3 4
8 4 3 6
9 4 5 1[回车]
输出样例2:
No Point[回车]
时间限制:500ms内存限制:32000kb
3 身份证的奥秘(10分)
题目内容:
18位身份证标准在国家质量技术监督局于1999年7月1日实施的
GB11643-1999《公民身份号码》中做了明确的规定。
GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称”社会保障号码”更名为”公民身份
号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如
下:
一、范围
该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。
二、编码对象
公民身份号码的编码对象是具有中华人民共和国国籍的公民。
三、号码的结构和表示形式
1、号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2、地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5、校验码
(1)十七位数字本体码加权求和公式
S = Sum(Ai * Wi), i = 0, … , 16 ,先对前17位数字的权求和
Ai: 表示第i位置上的身份证号码数字值
Wi: 表示第i位置上的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
Y = mod(S, 11)
(3)通过模得到对应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
四、举例如下:
北京市朝阳区: 11010519491231002X
广东省汕头市: 440524188001010014
15位的身份证号升级办法:
15位的身份证号:dddddd yymmdd xx p
18位的身份证号:dddddd yyyymmdd xx p y
其中dddddd为地址码(省地县三级)
yyyymmdd yymmdd 为出生年月日
xx顺号类编码
p性别
15 位的 yy 年升为 18 位后,变成 19yy年,但对于百岁以上老人, 则为 18yy 年,此时,他们的最后三位顺序码为996, 997, 998 或 999 来标记。
输入格式:
输入n组身份证号码,第一行为个数,以后每行为身份证号码。
输出格式:
如果输入的身份证号码为15位,则将其升级为18位后显示输出;否则判断其是否为合法身份证号,并逐行输出。
输入样例:
4
350622197904130331
11010519491231002X
110105491231002
110105491231996[回车]
输出样例:
Invalid[回车]
Valid[回车]
11010519491231002X[回车]
110105184912319965[回车]
时间限制:500ms内存限制:32000kb
4 安全的密码(10分)
题目内容:
随着电子设备的广泛运用,密码也渐渐融入每个人的生活。保护好密码,不仅关系到个人隐私,更关系到个人的财产和安全。一个安全的密码,最好由大小写字母、数字或符号组成。包含越多种类的字符,其安全性就越高。同时密码还需要有一定的长度,通常至少要由六个以上的字符组成。
并不是每个人都喜欢这样复杂的密码,很多人在设置密码的时候,喜欢使用自己的名字或者生日,但这是很大的安全隐患。
任务
林晓炜正在设计一个网络交易系统,为了保证用户的密码安全,他需要一个程序,判断用户自己设置的密码是否安全,如果不安全,则给出提示。现在他向你求助,请你帮忙设计一个程序来解决这个问题。
应当按照以下的规则来判断密码是否安全:
如果密码长度小于 6 位,则不安全
如果组成密码的字符只有一类,则不安全
如果组成密码的字符有两类,则为中度安全
如果组成密码的字符有三类或以上,则为安全
通常,可以认为数字、大写字母、小写字母和其它符号为四类不同的字符。
输入格式:
输入的第一行是一个整数 N,表明后面有多少组密码。随后的 N 行输入包括 N 个密码,每个密码的长度均小于 20 个字符。
输出格式:
针对每一个密码判断并输出它是否安全。对于不安全的密码输出 “Not Safe”,对于中度安全的密码输出 “Medium Safe”,对于安全的密码输出 “Safe”
输入样例:
4
1234
abcdef
ABC123
1#c3Gh[回车]
输出样例:
Not Safe
Not Safe
Medium Safe
Safe[回车]
时间限制:500ms内存限制:32000kb