programming challenge 1 基础入门....
来源:互联网 发布:黎明杀机无法连接网络 编辑:程序博客网 时间:2024/05/08 01:06
这些都是入门基础题,做完之后发现自己基础不牢啊...什么浮点型计算不清楚,各种wa问题,各种BUG快速难以找到,还有自己的一些粗心的存在。蛋疼。
第一题:The 3n + 1 problem
这个问题描述非常简单,但数据量有点大,开始打表始终过不了,后来还是一边保存数据,一边输出答案AC了;
#include <cstdio>#include <cstring>#include <algorithm>int f[5000100];int a[1000100];int n,m;int ff(int x){int k=x,t=1;while (k!=1){if (k % 2==0)k/=2;else k=3*k+1;t++;}return t;}int main(){memset(f,0,sizeof(f));while (~scanf("%d%d",&n,&m)){int max=0;int n1=n,m1=m;if (n>m){int t=n;n=m;m=t;}for (int i=n;i<=m;i++){if (f[i]==0)f[i]=ff(i);if (f[i]>max)max=f[i];}printf("%d %d %d\n",n1,m1,max);}return 0;}
第二题:Minesweeper
扫雷问题,非常简单的模拟吧...一遍AC...
#include <cstdio>#include <cstring>int map[110][110];void ff(int x,int y){if ( (x-1>0) && (y-1>0) && map[x-1][y-1]!=-1)map[x-1][y-1]++;if ( (x-1>0) && (y>0) && map[x-1][y]!=-1)map[x-1][y]++;if ( (x-1>0) && (y+1>0) && map[x-1][y+1]!=-1)map[x-1][y+1]++;if ( (x>0) && (y-1>0) && map[x][y-1]!=-1)map[x][y-1]++;if ( (x>0) && (y+1>0) && map[x][y+1]!=-1)map[x][y+1]++;if ( (x+1>0) && (y-1>0) && map[x+1][y-1]!=-1)map[x+1][y-1]++;if ( (x+1>0) && (y>0) && map[x+1][y]!=-1)map[x+1][y]++;if ( (x+1>0) && (y+1>0) && map[x+1][y+1]!=-1)map[x+1][y+1]++;}int main(){int n,m,t=1;scanf("%d%d",&n,&m);while ((n+m)){memset(map,0,sizeof(map));for (int i=1;i<=n;i++){getchar();for (int j=1;j<=m;j++){char c;scanf("%c",&c);if (c=='*')map[i][j]=-1;}}for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)if (map[i][j]==-1)ff(i,j);printf("Field #%d:\n",t++);for (int i=1;i<=n;i++){for (int j=1;j<=m;j++)if (map[i][j]==-1)printf("*");else printf("%d",map[i][j]);printf("\n");}scanf("%d%d",&n,&m);if (n+m) printf("\n");} return 0;}
第三题:The Trip
旅行,这个问题描述没搞太清楚,题意都没理解透就开始写代码,结果自然WA了,后来网上看题解,才发现这是最小值中找最大...唉...哦,其中的浮点型计算也很麻烦,试过很多种方法,蛋疼,最后还是化成整数计算...
#include <cstdio>int main(){double a[1010];int n;double f;while (~scanf("%d",&n) && n){f=0;for (int i=1;i<=n;i++){scanf("%lf",&a[i]);f+=a[i];}f=f/n;double ff=0,fff=0;for (int i=1;i<=n;i++)if (a[i]>f)ff+=(int)((a[i]-f)*100)/100.0;else fff+=(int)((f-a[i])*100)/100.0;printf("$%.2lf\n",ff<fff?fff:ff);}return 0;}
第四题:LCD Display
简单的显示数字,耐心一点吧...能AC的...但是我不是一个很沉得住气的人...
#include <cstdio>#include <cstring>char z[][40]={ " - - - - - - - - ", "| | | | || || | || || |", " - - - - - - - ", "| | || | | || | || | |", " - - - - - - - "};int main(){int s,l;char m[10];while(~scanf("%d",&s) && s){getchar();scanf("%s",&m);l=strlen(m);for (int i=0;i<2*s+3;i++){for (int j=0;j<l;j++){int num=m[j]-'0';if (i==0 || i==s+1 || i==s*2+2){int t;if (i==0) t=0;if (i==s+1) t=2;if (i==s*2+2) t=4;printf("%c",z[t][num*3]);for (int k=0;k<s;k++)printf("%c",z[t][num*3+1]);printf("%c",z[t][num*3+2]);}else if (i>0 && i<s+1){printf("%c",z[1][num*3]);for (int k=0;k<s;k++)printf("%c",z[1][num*3+1]);printf("%c",z[1][num*3+2]);}else{printf("%c",z[3][num*3]);for (int k=0;k<s;k++)printf("%c",z[3][num*3+1]);printf("%c",z[3][num*3+2]);}if (j!=l-1)printf(" ");}printf("\n");}printf("\n");}return 0;}
- programming challenge 1 基础入门....
- programming challenge 1(基础入门2)
- Mujin Programming Challenge 2017A
- Atcoder Mujin Programming Challenge 2017
- WebSocket Java Programming入门-1(annotated)
- securityoverridehacking challenge 解题思路汇总——Programming
- [La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017]Ambiguous Dates
- La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017
- La Salle-Pui Ching Programming Challenge 2017 Gym
- Networking Programming (1) 网络基础 上
- Python Challenge 谜题1
- 【Python Challenge-1】trans
- python challenge 答案详解~(1)
- xml基础入门(1)
- PHP基础入门1
- Intrinsic 基础入门【1】
- 1、java 入门基础
- 基础入门(1)
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
- Oracle存储过程基本语法
- 每天一题(48) - C++实现Singleton模式
- 奇偶校验
- IOS NSPredicate 查询、搜索(详解)
- programming challenge 1 基础入门....
- iOS 学习Block
- HDU 3397 Sequence operation
- 程序员的八个级别
- 黑马程序员--集合
- CCColorLayer [[[self alloc] initWithColor:color]报错
- 分页实现,类似博客园首页的分页
- Byval 和 Byref的区别
- Oracle存储过程_基础