基本算法练习五
来源:互联网 发布:μtorrent mac 编辑:程序博客网 时间:2024/05/01 10:06
第一题:约德尔测试
这道题看上去还是蛮简单的,我想到的就是字符串替换。由于它说了字符串不超过1000,那么我在程序里就直接建一个char数组,这样的话能够很方便的修改对应的元素。如果是用字符串指针的话,字符串是存在常量区在。没有数组之间修改方便。代码如下:
#include <stdio.h>#include <iostream>#include <string.h>using namespace std;int main(){ char s1[1000],s2[1000]; cin>>s1; cin>>s2; int num = 0; double ans = 0.0; size_t len = strlen(s1); for (int i = 0; i < len; i++) { if ((s1[i]>='a'&&s1[i]<='z')||(s1[i]>='A'&&s1[i]<='Z')||(s1[i]>='0'&&s1[i]<='9')) { s1[i] = '1'; } else{ s1[i] = '0'; } } for (int i = 0; i < len; i++) { if (s1[i]==s2[i]) { num++; } } ans = num*100.0/len; printf("%.2f%%\n",ans); return 0;}
第二题:投篮游戏
这道题也是基本的循环判断,就是需要设置一个p个篮筐数组,用来保存里面是不是有球,无球是false,有球是true。因此代码如下:
#include <stdio.h>#include<iostream>using namespace std;int main(){ int p,n; cin>>p>>n; int ball[n]; bool isBall[p]; for (int i=0; i<n; i++) { cin>>ball[i]; } //刚开始篮筐全是空的 for (int i=0; i<p; i++) { isBall[i] = false; } int sum = -1; for (int i=0; i<n; i++) { //如果对应的篮筐中有球,也就是true,则把i+1(因为i是从0开始的)赋给sum,并退出循环。 int x = ball[i]%p; if (isBall[x]) { sum = i+1; break; } else{ isBall[x] = true; } } cout<<sum<<endl; return 0;}
0 0
- 基本算法练习五
- 基本算法练习三
- 基本算法练习四
- 算法练习 - 五笔编码
- Javascript算法练习(五)
- 基本排序算法的练习
- 基本算法题练习一
- 基本算法题练习二
- 五种基本算法思想
- 五笔学习之基本指法练习和数字键练习
- 算法练习五 红黑树下 节点删除
- 算法练习笔记(五)— 图
- C语言:五大基本排序算法
- C语言:五大基本排序算法
- c语言:五大基本排序算法
- 五大基本常用算法概述
- 五大常用算法基本介绍
- 用python实现五大基本算法
- IOS 学习笔记
- 通过SlimerJS触发键盘事件使优酷视频快进(问题未解决)
- 基于redisson的分布式锁的简单注解实现
- 【NOIP提高组】完美标号
- JAVA基础(1)——基本概念
- 基本算法练习五
- Eclipse设置文本格式为UTF-8/eclipse 工程平铺展开方式,如何将代码工程进行分类
- 编程规范_这个星球上最好的C编程风格
- 【POJ 2348】Euclid's Game 【简单博弈】
- Sublime Text 3 快捷键汇总
- Java继承练习
- servlet实现下载文件功能
- 新IDA6.9 for mac可以用啦 开心呀
- 类的作用域、构造函数、静态成员