网易2017春招笔试 分饼干

2024-06-22 06:48
文章标签 2017 春招 笔试 饼干 网易

本文主要是介绍网易2017春招笔试 分饼干,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值
输入描述:
输入包括两行:
第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多个模糊的数位)
第二行为小朋友的人数n

输出描述:
输出k可能的数值种数,保证至少为1

输入例子:
9999999999999X
3

输出例子:
4

测试用例:
9XXXXXXXXXXXXXXXXX
1
对应输出应该为:
100000000000000000

测试用例:
3X8XXX99X04XXXXX7X
8543

对应输出应该为:

11705428

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>using namespace std;
//核心:动态规划.从低位到高位,自底向上求解. 原理:若c=a+b,则c%n = (a%n + b%n) % n  int main(){int n;string s;//第一行输入的饼干数 cin>>s; scanf("%d",&n);//第二行输入的人数 long long dp[n+1],temp[n+1];//dp[i]表示余数为i的总共的可能数目.temp是dp的备份,防止状态转移混乱memset(dp,0,sizeof(dp));//dp数组置0 //先假设X位为0,根据其他已定位计算饼干数num //之后再调整X long long num=0;int le=s.size()-1;//le为s长度 for(int i=le;i>=0;i--){if(s[i]!='X')num=(s[i]-'0')*(long long)pow(10.0,le-i)+num;//num表示所有X位都默认为0的饼干数                }int i=le;//从低位向高位找第一个为X的位置,用于dp初始化for(;i>=0;i--)if(s[i]=='X')break;for(int j=0;j<=9;j++){//遍历X从0到9的情况 long long tmp=(j*(long long)pow(10.0,le-i));int pos=(num+tmp)%n;//取余 dp[pos]+=1;//余数为pos的计数+1 }i--;//调整X //从低位向高位继续遍历,找数位为X的位 for(;i>=0;i--){if(s[i]=='X'){memset(temp,0,sizeof(temp));//temp数组置0 for(int j=0;j<=9;j++){//遍历X从0到9的情况 long long tmp=(j*pow(10.0,le-i));//计算增量 int pos=tmp%n;//计算增量的模n余数 //遍历dp[] for(int p=0;p<n;p++){temp[(p+pos)%n]+=dp[p];//核心,递归方程}}      for(int p=0;p<n;p++)//对一个X迭代完成后,temp写入dp dp[p]=temp[p];                  }      }cout<<dp[0]<<endl;return 0;
} 

这篇关于网易2017春招笔试 分饼干的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083582

相关文章

嵌入式软件常见的笔试题(c)

找工作的事情告一段落,现在把一些公司常见的笔试题型整理一下,本人主要是找嵌入式软件方面的工作,笔试的也主要是C语言、数据结构,大体上都比较基础,但是得早作准备,才会占得先机。   1:整型数求反 2:字符串求反,字符串加密,越界问题 3:字符串逆序,两端对调;字符串逆序,指针法 4:递归求n! 5:不用库函数,比较两个字符串的大小 6:求0-3000中含有9和2的全部数之和 7

【java编程(在线笔试)】【链表】两道k个一组翻转链表题目(包含非递归和递归两种解法)

一、给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点也翻转顺序。 1. 非递归解法 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {

visual studio 2017使用libevent的准备步骤

本人使用的visual studio 2017为community版本,libevent为github上pull下来的最新版本,链接如下:https://github.com/libevent/libevent。 步骤一,编译libevent库 在开始菜单--->所有程序处打开VS 2017的开发人员命令提示符程序,如下图所示 使用cmd命令定位到libevent的目录,输入 nma

从网易校招编程题谈起,轻松理解有趣的0-1背包问题

从网易的一道算法题开始 最近在准备春招实习,偶然做到网易的一道编程题,一方面找了很多博客看的云里雾里,这里特别写下解题的思路和逻辑,一方面加深印象,另一方面供需要的你学习参考。好了,话不多说,开始吧。本文提供思路,并给出Java代码实现例子,供大家参考。 先睹为快 来源:网易2017春招笔试真题编程题 时间限制:1秒 空间限制:32768K 一种双核CPU的两个核能够同时的处理任务,现在有

2017-1-1

console.info('信息'); http://wenku.baidu.com/view/f7d18d8702d276a200292eed.html

网易:从邮箱服务到多元化互联网业务的跨越式发展

网易,这个在中国互联网发展史上留下浓墨重彩一笔的名字,自1997年由丁磊先生创立以来,已经走过了二十余载的风雨历程。从最初的一家单纯的邮箱服务提供商,到如今涵盖游戏、电商、教育、音乐等多个领域的综合性互联网巨头,网易的成长轨迹不仅映射出中国互联网行业的蓬勃发展,也彰显了其自身不懈的创新精神和卓越的市场洞察力。 网易的起点并不显赫,却充满了创新的火花。在那个互联网刚刚起步的时代,网易邮箱凭借其

C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出

目录 题目 实例 方法一:直接交换 方法二:间接交换 拓展 题目 编写一个函数,将一个无符号整数的所有位逆序(在32位机器下) 实例 例如有一个无符号整数  unsigned int num = 32; unsigned int 在32位系统中占4个字节(32位) 32的二进制数是:       0000 0000 0000 0000 0000 0000  0010

【牛客网 2017年校招模拟笔试(第一场)】超级素数幂

超级素数幂 描述 如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q。 输入 输入一个正整数n(2 ≤ n ≤ 10^18) 分析 暴力枚举幂q,将n开q次方之后得到p,检查p是否为素数,并且检查p的q次幂是否等于n。 *要注意精度问题,代码待之后补充。

【牛客网 2017年校招模拟笔试(第一场)】 序列和

求序列和 描述 我们要找连续的一段长度大于等于L小于等于100整数和等于N,容易观察到合法的长度范围很小,于是我们从L开始枚举,然后找到第一个输出即可。 我的代码 最初提交了一次代码,用vector保存了所有满足条件的序列,输出长度最小的,提交之后说内存超出限制,看了一眼题目,发现内存貌似是限制在2w多k?伤心,之前做题没遇到过内存还有这么严格的限制。 修改了一下,其实这个代码并没

百度笔试题:找最小的不重复数

版权所有。所有权利保留。 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/17123835 给定任意一个正整数,求比这个数大且最小的“不重复数”,“不重复数”的含义是相邻两位不相同,例如1101是重复数,而1201是不重复数。 思路很简单: 1、把原数加1。 2、从高位开始找重复位。 3