ZZULIOJ1061-1070
目录
1061: 顺序输出各位数字
1062: 最大公约数
1063: 最大公约与最小公倍
1064: 加密字符
1065: 统计数字字符的个数
1066: 字符分类统计
1067: 有问题的里程表
1068: 二进制数
1069: 向Z同学学习
1070: 小汽车的位置
1061: 顺序输出各位数字
题目描述
输入一个不大于10的9次方的正整数,从高位开始逐位分割并输出各位数字。
输入
输入一个正整数n,n是int型数据
输出
依次输出各位上的数字,每一个数字后面有一个空格,输出占一行。例如,输入 12345 ,输出 1 2 3 4 5
样例输入 Copy
12345
样例输出 Copy
1 2 3 4 5
提示
注意整数运算避免使用double类型的函数如pow()。
本题可先用一个循环计算出最高位的位权h,然后再用一个循环,循环内容为: 输出最高位(n/h)、扔掉最高位(n = n%h)、降低最高位位权(h = h/10),直到位权h为0。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){int n,m,i,l,base;scanf("%d",&n);base=1;l=n;for (i=n;i!=0;i/=10){base*=10;}base/=10;
for (i=n;i!=0;i/=10)
{m=l/base;l=l%base;base=base/10;printf("%d ",m);
}return 0;
}/**************************************************************Problem: 1061User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:j0IlWRo3sSaxTCfJJpvCjVRSfvU
****************************************************************/
1062: 最大公约数
题目描述
输入两个不大于10的9次方的正整数,输出其最大公约数。
输入
输入两个正整数m和n,数据之间用空格隔开。
输出
输出一个整数,表示m和n的最大公约数。
样例输入 Copy
4 6
样例输出 Copy
2
提示
请查阅欧几里得定理及辗转相处法。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){int n,m,r1;scanf("%d%d",&m, &n);if(m<n){r1=m;m=n;n=r1;}while(n!=0){r1=m%n;m=n;n=r1;}printf("%d ",m);return 0;
}/**************************************************************Problem: 1062User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:iUR1DRxn4CaxTCfJJpvCjVRSfvY
****************************************************************/
1063: 最大公约与最小公倍
题目描述
输入两个正整数,输出其最大公约数和最小公倍数。
输入
输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。
输出
输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。
样例输入 Copy
4 6
样例输出 Copy
2 12
提示
注意运算过程中的溢出问题
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){int n,m,r1,r2,x=1,y=1;scanf("%d%d",&m, &n);if(m<n){r1=m;m=n;n=r1;}r2=m;for(r2=m;x!=0||y!=0;r2++){x=r2%m;y=r2%n;}while(n!=0){r1=m%n;m=n;n=r1;}printf("%d %d",m,r2-1);return 0;
}/**************************************************************Problem: 1063User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:jBFxDxtms3CxTCfJJpvCjVRSfvc
****************************************************************/
1064: 加密字符
题目描述
从键盘输入一批字符,以@结束,按要求加密并输出。
输入
从键盘输入一批字符,占一行,以@结束。
输出
输出占一行
加密规则:
1)所有字母均转换为小写。
2)若是字母'a'到'y',则转化为下一个字母。
3)若是'z',则转化为'a'。
4)其它字符,保持不变。
样例输入 Copy
Kyh520@
样例输出 Copy
lzi520
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){char n;n=1;while (n!='@'){scanf("%c",&n);if (n=='@')break;if(n>='A'&&n<='Z')n+=32;if(n>='a'&&n<='y')n+=1;else if(n=='z')n='a';elsen=n;printf("%c",n);}return 0;
}/**************************************************************Problem: 1064User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:jh5yDB8w5iexTCfJJpvCjVRSfvA
****************************************************************/
1065: 统计数字字符的个数
题目描述
输入一行字符,以回车符作为输入结束的标志。统计其中数字字符的个数。
输入
多个字符,以回车符结束,回车符不作为有效字符。
输出
输出一个整数,表示数字字符的个数。
样例输入 Copy
12abrt12@2013
样例输出 Copy
8
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){char n;int m,i;m=0;n=0;for(i=0;n!='\n';i++){scanf("%c",&n);if(n>='0'&&n<='9')m++;}
printf("%d",m);return 0;
}/**************************************************************Problem: 1065User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:jEQnDUpmtXSxTCfJJpvCjVRSfvE
****************************************************************/
1066: 字符分类统计
题目描述
输入一行字符,以回车符作为输入结束的标志。统计其中英文字母、数字字符和其他字符的个数。
输入
多个字符,以回车符结束,回车符不作为有效字符。有效字符个数不超过100。
输出
输出分3行,格式见输出样例。
样例输入 Copy
Abse 4+5*3=?
样例输出 Copy
letter:4 digit:3 other:5
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){char n;int d,i,l=0,o=0;d=0;n=0;for(i=0;n!='\n';i++){scanf("%c",&n);if(n>='0'&&n<='9')d++;else if((n>='a'&&n<='z')||(n>='A'&&n<='Z'))l++;else o++;}
printf("letter:%d\ndigit:%d\nother:%d\n",l,d,o-1);return 0;
}/**************************************************************Problem: 1066User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:jxByCB8zvXexTCfJJpvCjVRSfvI
****************************************************************/
1067: 有问题的里程表
题目描述
某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表所有位(个位、 十位、百位等)上的数字都是如此。例如,如果里程表显示339,汽车走过1公里之后,该里程表显示350。
输入
输入一个整数num,表示里程表显示的数值,1 < num < 1000,且一定不含整数4。
输出
输出一个整数,为该汽车实际行驶的公里数。例如,如果该里程表显示55,则实际走过的公里 数是40。
样例输入 Copy
106
样例输出 Copy
86
提示
方法1:这对本题数据规模较小的情况,可用一个循环来模拟。用一个1~num的循环,在循环过程中,用另一个循环变量计数,统计不含数字4的整数个数。
方法2:此题稍加修改,可转换为一个9进制转换为10进制的问题,此方法更通用。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){int num,i,n=0;
scanf("%d",&num);
for(i=1;i<=num;i++)
{if(i%10!=4&&i/10%10!=4&&i/100!=4)n++;
}
printf("%d\n",n);return 0;
}/**************************************************************Problem: 1067User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:ixdwXUo6vHOxTCfJJpvCjVRSfvM
****************************************************************/
1068: 二进制数
题目描述
将一个二进制数,转换为对应的十进制数。
输入
输入一个只含有’0’和’1’的字符串,以回车结束,表示一个二进制数。该二进制数无符号位,长度不超过31。
输出
输出一个整数,为该二进制数对应的十进制数。
样例输入 Copy
100000000001
样例输出 Copy
2049
提示
(1) 整数运算尽量避免pow之类的double类型函数,以免截断取整带来错误。 (2)可使用递推思想,充分利用中间结果。类似思想可参考秦九韶算法。秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。计算一次多项式f(x) = a0*xn + a1*x(n-1) + ... + an 只需要n次乘法和n次加法。原理是一次多项式f(x)可写成如下加括号方式:f(x) =(( (a0*x + a1)*x + a2) * x + ... an-1) * x + an。自内向外去括号计算,只需要n次乘法和n次加法。
本题从高位到低位依次输出二进制数,对应多项式系数a0, a1,....,an, 而x的值为2。递推过程如下:
d = 0;
while( ch = getchar(), ch != '\n')
d = d * 2 + (ch - '0');
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){int d;
char ch;
d=0;
while(ch=getchar(),ch!='\n')
{d=d * 2 + (ch-'0');
}
printf("%d\n",d);return 0;
}/**************************************************************Problem: 1068User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:iUUlCEk15XCxTCfJJpvCjVRSfvw
****************************************************************/
1069: 向Z同学学习
题目描述
Z同学为了实现暑假去云南旅游的梦想,决定以后每天只消费1元,每花k元就可以再得到1元,一开始Z同学有M元,问最多可以坚持多少天。
输入
输入2个整数M, k,(2 <= k <= M <= 1000)。
输出
输出一个整数,表示M元可以消费的天数。
样例输入 Copy
4 3
样例输出 Copy
5
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void){int i=0,m,k;
scanf("%d%d",&m, &k);
while(m>0)
{m--;i++;if(i%k==0)m+=1;}printf("%d\n",i);return 0;
}/**************************************************************Problem: 1069User: 542107230106Language: CResult: 正确Time:0 msMemory:1044 kb通过码:jx8jCB0xtyyxTCfJJpvCjVRSfv0
****************************************************************/
1070: 小汽车的位置
题目描述
有一辆智能小车,最初(时间为0)的位置为(0,0),我们想知道它最后的位置。小车以每小时10公里的速度向北移动(以北为y轴正向,以东为x轴正向)。小车会受到一系列依照时间戳记排序的命令,1表示“向左转”,2表示“向右转”,3表“停止”。每个命令的前面有一个时间戳记,所以我们知道该命令是何时发出的。最后一个命令一定是“停止”。我们另外假设,这辆小车非常灵活,它可以在瞬间转弯。
以下列输入为例。小车在时间为5的时候收到一个“向左转”的命令1,在时间10收到一个“向右转”的命令2,在时间15收到一个“停止”的命令3。那么在最后时间15的时候,小车的位置将在(-50,100)。程序只要求输出小车最后的位置,第一个整数是x坐标,第二个整数是y坐标。
输入
输入包含多个命令,每个命令由整数time和command组成,表示在时刻time发出命令command。command的取值范围1-3,含义如上所述。
输出
输出占一行,包含两个整数,表示小车的最终位置。两个整数之间由空格隔开。
样例输入 Copy
5 1 10 2 15 3
样例输出 Copy
-50 100
提示
此题信息量大,考查内容较为综合。
(1)数字化。可为四个方向编号,自向北开始,逆时针将4个方向依次编号为0,1,2,3。当接到向左转命令,方向号增1,向右转则方向号减1。为避免出现负数或大于3的情况,可对4取模。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>int main(void)
{int time,time1,f,command;
int x=0, y=0;
f=0;time1=0;
while(1)
{scanf("%d%d",&time,&command);switch(f)//switch用于选择判断{case 0: y+=(time-time1)*10;break;case 1: x-=(time-time1)*10;break;case 2: y-=(time-time1)*10;break;case 3: x+=(time-time1)*10;break;//从北开始逆时针的4个方向}time1=time;//不能是t1=t1-t,应让t1为上次的tif(command==3)break;if(command==1)f=(f+1)%4;if(command==2)f=(f+3)%4;//为了绕一圈变成当前位置的左右
}
printf("%d %d",x,y);return 0;
}/**************************************************************Problem: 1070User: 542107230106Language: CResult: 正确Time:1 msMemory:1044 kb通过码:iBJxXhg04HCxTCfJJpvCjVRSf/Q
****************************************************************/
ZZULIOJ1061-1070相关推荐
- PAT 1069 1070 1071 1072
pat 1069 The Black Hole of Numbers 水题,代码如下: 1 #include<cstdio> 2 #include<cstdlib> 3 #in ...
- HDOJ 1070 排序 水
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1070 要注意的点: 小于等于199ml的牛奶不买. 牛奶的有效容量小于等于1000ml.因为作者只喝5 ...
- 【BZOJ】1070: [SCOI2007]修车
1070: [SCOI2007]修车 Description 同 一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需 ...
- cdoj 1070 秋实大哥打游戏 带权并查集
题目链接: http://acm.uestc.edu.cn/#/problem/show/1070 题意: 题解: 带权并查集 每次往上更新的时候,顺便把边权更新了就好 记住得路径压缩 代码: 1 # ...
- PAT甲级1070 Mooncake:[C++题解]贪心
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 对单件从高到低排序. 需要注意的是总需要量d设成double,不要设成int. ac代码 #include<bits/stdc ...
- CDOJ 1070 秋实大哥打游戏 带权并查集
链接 F - 秋实大哥打游戏 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit ...
- BZOJ 1070 修车
Description 同一时刻有\(N\)位车主带着他们的爱车来到了汽车维修中心.维修中心共有\(M\)位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这\(M\)位技术 ...
- BZOJ 1070 拆点 费用流
1070: [SCOI2007]修车 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 5860 Solved: 2487 [Submit][Statu ...
- 【渝粤题库】国家开放大学2021春1070组织行为学题目
教育 教育 试卷代号:1070 2021年春季学期期末统一考试 组织行为学 试题 2021年7月 注意事项 一.将你的学号.姓名及分校(工作站)名称填写在答题纸的规定栏内.考试结束后,把试卷和答题纸放 ...
- 1070. 结绳(25)
1070. 结绳(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一段一段的绳子,你需要把它们串成一条 ...
最新文章
- Java基础学习总结(16)——Java制作证书的工具keytool用法总结
- angularjs 中的$digest和$apply区别
- Python学习笔记:Day 12 编写日志列表页
- TypeScript里的Index signature
- 最后的代课老师———漆红玉[转]
- 十步让 WebForm项目 变为 Mvc项目
- python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
- 基于JAVA+SpringMVC+Mybatis+MYSQL的网上医院预约挂号系统
- Google 视频编码格式 VP9 究竟厉害在哪里
- ubuntu16服务器vnc无显示器,Ubuntu 18.04 解决无显示器无法vnc远程连接的问题 虚拟显示器 dummy video...
- 10的几次方 用计算机计算公式,在excel中如何计算10的几次方呢
- qpsk的映射过程_qpsk原理
- 华为Mate系列平板手机安装谷歌框架
- 图像智能处理黑科技,让图像处理信手拈来
- 利用公式近似计算log2(x)
- Linux进程间通信(二)之信号量
- Python项目-Day26-数据加密-hash加盐加密-token-jwt
- 淮师计算机网络试题库,淮阴师范学院(淮师)计算机基础一至六章习题
- python安装opencv及检测是否安装成功
- 艰难春招,终于offer
热门文章
- android 换机 iphone8,iPhone 8屏幕大升级 给了安卓用户一个换机理由
- 七月Z星月度速览 | Milvus 源码解析重磅来袭、学术直播间开播、Milvus 社区在线答疑会重启、智能问答机器人上线……...
- git解决冲突(超详细图文版及常用命令)
- 小型网络规划设计与实施(简单课设)
- 基于Riffa架构的PCIEDMA测试分析
- VC 给控制台exe 增加版本信息,图标
- 使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
- 数据开发-SQL语句优化及实用SQL案例
- [原创]我(们)开始跳舞了
- Latex学习笔记(三)换行与换页