网易笔试题20170909
来源:互联网 发布:收银软件交流群 编辑:程序博客网 时间:2024/06/05 20:59
今天刚做完网易的笔试题,对其中一道编程题印象特别深刻:
题目的主要题干:对数列A进行重排序,使得所有的A[i]*A[i+1]都是4的倍数
我的思路是这样的:
要找出此数列的规律,其实并不需要每种情况都遍历判断一遍,而是要搞清楚能满足条件时数列必须满足的形式。两个数相乘是4的倍数,即要么至少有一个数能被4整除,要么两个数能被2整除。也就是说数列中所有两个数的组合相乘必须要满足一种情况。
从而想到需要统计能被4整除的个数,能被2整除的个数和不能被4,2整除的个数。见如下代码:
#include <bits/stdc++.h> using namespace std;int n;int main() { int t; scanf("%d", &t);//需要判断几个数列 while(t--) { scanf("%d", &n);//每个数列的长度 int cnt4 = 0; int cnt2 = 0; int cnt1 = 0; for(int i = 0; i < n; i++) { int x; scanf("%d", &x);//数列中具体的数 if(x % 4 == 0) cnt4++; else if(x % 2 == 0) cnt2++; else cnt1++; } if(cnt2 == 0) { if(cnt4 >= cnt1 - 1) printf("Yes\n"); else printf("No\n"); } else { if(cnt4 >= cnt1) printf("Yes\n"); else printf("No\n"); } } return 0;}
阅读全文
0 0
- 网易笔试题20170909
- 网易一道笔试题!
- 网易笔试题
- 网易笔试题
- 网易笔试题一道
- 网易一道笔试题!
- 网易笔试题
- 网易笔试题
- 2012网易笔试题
- 网易有道笔试题
- 网易程序笔试题
- 网易有道笔试题
- 网易Java笔试题
- 网易笔试题
- 网易笔试题
- 网易C++笔试题
- 网易有道笔试题
- 网易笔试题
- (1) racecar零件购买
- 秒杀系统的架构之道
- NGUI优化ScroolView中Grid子级太多导致的滑动问题
- 现代OpenGL+Qt学习笔记之一:概述
- UVA10534[Wavio Sequence] 动态规划 LIS
- 网易笔试题20170909
- 【拜小白opencv】29-平滑处理2线性滤波之——均值滤波
- Express + Session 实现登录验证
- Ubuntu 16.04搭建LAMP开发环境
- 爬虫自学笔记(Python3.6.1)
- Comparator<String>接口,String类数组按字符串长度排序
- linux命令--rpm命令
- [DP] POJ
- 除法取模与逆元--hdu3970 Harmonious Set