博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题题解
阅读量:5092 次
发布时间:2019-06-13

本文共 5717 字,大约阅读时间需要 19 分钟。

A、大还是小?

思路:不能当做浮点数输入,要当做字符串输入,然后比较小数点的位置,再比较小数点前的大小,再比较小数部分的大小。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long 13 #define maxn 100010 14 #define PI acos(-1.0) //圆周率 15 const ll INF = 1e18; 16 using namespace std; 17 char s1[110],s2[110]; 18 int cas; 19 int main() 20 { 21 cas=0; 22 while(scanf("%s %s",s1,s2)!=EOF) 23 { 24 int len1=strlen(s1); 25 int len2=strlen(s2); 26 27 int dex1=0; 28 int dex2=0; 29 30 for(int i=0;i
dex2) printf("Case %d: Bigger\n",++cas); 51 continue; 52 } 53 54 int len=len1
s2[i]) 59 { 60 flag=1; 61 break; 62 } 63 else if(s1[i]
len2) 75 { 76 for(int i=len;i
View Code

B、错误的算法

思路:先用错误的算法算出答案,再用正确的算法算出答案,再比较,不同的就是强数据,相同的就是弱数据,正确的算法是算出每一种可能再选出最大的那个。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long13 #define maxn 10001014 #define PI acos(-1.0) //圆周率15 const int INF = 500000;16 using namespace std;17 int maze[510][510];18 int c[510];19 int r[510];20 int n,m;21 int cas;22 int main()23 {24 cas=1;25 while(scanf("%d %d",&n,&m)!=EOF)26 {27 memset(maze,0,sizeof(maze));28 for(int i=0;i
k?bigr:k;42 }43 for(int i=0;i
k?bigc:k;49 }50 51 int ans=0;52 for(int i=0;i
k?ans:k;58 }59 }60 61 int f=0;62 for(int i=0;i
View Code

C、又一道简单题

思路:直接把四个数的可能性都枚举一次就行了

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long13 #define maxn 1001014 #define PI acos(-1.0) //圆周率15 const ll INF = 1e18;16 using namespace std;17 int vis[maxn];18 int T,n;19 int main()20 {21 while(scanf("%d",&T)!=EOF)22 {23 int cas=1;24 for(int i=1;i<=100;i++) vis[i*i]=1;25 while(T--)26 {27 scanf("%d",&n);28 int a=n/1000;29 int b=n/100%10;30 int c=n/10%10;31 int d=n%10;32 33 int ans=0;34 35 for(int i=1;i<=9;i++)36 {37 if(i!=a)38 {39 int k=i*1000+b*100+c*10+d;40 if(vis[k]) ans++;41 }42 }43 44 for(int i=0;i<=9;i++)45 {46 if(i!=b)47 {48 int k=a*1000+i*100+c*10+d;49 if(vis[k]) ans++;50 }51 }52 53 for(int i=0;i<=9;i++)54 {55 if(i!=c)56 {57 int k=a*1000+b*100+i*10+d;58 if(vis[k]) ans++;59 }60 }61 62 for(int i=0;i<=9;i++)63 {64 if(i!=d)65 {66 int k=a*1000+b*100+c*10+i;67 if(vis[k]) ans++;68 }69 }70 71 printf("Case %d: %d\n",cas++,ans);72 }73 }74 75 return 0;76 }
View Code

D、就多了两分钟

思路:把时长用分钟表示出来,如果不是30的倍数,少的那部分就是还要上机的时间,然后凑到30的倍数之后除以30就是费用了

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long13 #define maxn 10001014 #define PI acos(-1.0) //圆周率15 const ll INF = 1e18;16 using namespace std;17 int h1,h2,m1,m2;18 int cas;19 int main()20 {21 cas=1;22 while(scanf("%d %d %d %d",&h1,&m1,&h2,&m2)!=EOF)23 {24 if(h1>h2||(h1==h2&&m1>m2))25 {26 printf("Day %d: Joking\n",cas++);27 continue;28 }29 30 if(m1>m2)31 {32 m2+=60;33 h2-=1;34 }35 36 int ti=(h2-h1)*60+m2-m1;37 38 int mon=0;39 int ans=0;40 if(ti%30==0)41 {42 mon=ti/30;43 ans=0;44 }45 else46 {47 mon=ti/30+1;48 ans=mon*30-ti;49 }50 51 printf("Day %d: %d %d\n",cas++,mon,ans);52 }53 54 return 0;55 }
View Code

E、N!

思路:大数乘阶模板

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long13 #define maxn 10001014 #define PI acos(-1.0) //圆周率15 const ll INF = 1e18;16 using namespace std;17 int f[maxn];18 int main()19 {20 int i,j,n;21 while(scanf("%d",&n)!=EOF)22 {23 memset(f,0,sizeof(f));24 25 f[0]=1;26 int count=1;27 for(i=1; i<=n; i++)28 {29 int c=0;//进位30 for(j=0; j
=0; j--)45 if(f[j]) break;46 47 for(i=j; i>=0; i--)48 printf("%d",f[i]);49 50 printf("\n");51 }52 return 0;53 }
View Code

F、最小公倍数

思路:求最小公倍数的模板

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long13 #define maxn 10001014 #define PI acos(-1.0) //圆周率15 const ll INF = 1e18;16 using namespace std;17 int gcd(int x,int y)18 {19 if(x%y) return gcd(y,x%y);20 return y;21 }22 int main()23 {24 int m,n;25 while(scanf("%d%d",&m,&n)!=EOF)26 {27 int ans=m/gcd(m,n)*n;28 printf("%d\n",ans);29 }30 return 0;31 }
View Code

G、小明A+B

思路:无论输入的数据的大小,直接对100取余,然后相加得到的答案再对100取余

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #define ll long long13 #define maxn 10001014 #define PI acos(-1.0) //圆周率15 const ll INF = 1e18;16 using namespace std;17 int T;18 int a,b;19 int main()20 {21 scanf("%d",&T);22 while(T--)23 {24 scanf("%d %d",&a,&b);25 a%=100;26 b%=100;27 28 int ans=a+b;29 ans%=100;30 31 printf("%d\n",ans);32 }33 34 return 0;35 }
View Code

 

转载于:https://www.cnblogs.com/2cm-miao/p/6606449.html

你可能感兴趣的文章
Java跟Javac,package与import
查看>>
day-12 python实现简单线性回归和多元线性回归算法
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]使用 Razor 进行递归操作
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
docker入门
查看>>
Android系统--输入系统(十一)Reader线程_简单处理
查看>>
监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型...
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>
实验五 Java网络编程及安全
查看>>
32位与64位 兼容编程
查看>>
iframe父子页面通信
查看>>
map基本用法
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
Linear Algebra lecture 2 note
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>