一道笔试题目

题目描述:编写一个函数,输入一个正整数n,返回一个最小的正整数m(m至少包含两位数),使得m的各位乘积等于n,如果某个n不存在这样的m,则返回-1,

例如:

输入:12

输出:26

输入:100

输出:455

输入:7

返回:17

#include<iostream>
using namespace std;

int func(int n)
{
	int num=0;
	int s;
	int m[10]={0};
	int p=0;//数组m的下标
	int sum=n;
	int i=2;//1~81得用两位数来表示
	int q=9;
	bool falg=false;

	while(sum>9*q)//计算大于81的数应该用几位数字表示  82~729之间用3位数表示
	{
		i++;
		q*=9;
	}

	int r=i-1;//后面要从数组m的i-1位开始输出,记录下i-1的值

	while(i)//找出满足条件的i位数
	{
		for(int j=9;j>=1&&!falg;j--)
		{
			s=sum;
			if(sum%j==0)
			{
				falg=true;
				m[p++]=j;
				sum/=j;
			}
		}
		if(s==sum&&sum>=10)
		{
			return -1;
		}
		--i;
		falg=false;
	}

	for(;r>=0;r--)
	{
		num=num*10+m[r];
	}

	return num;
}

int main()
{
	int n;

	//for(;;)
	//{
	cin>>n;
	int sum=func(n);
	cout<<sum<<endl;
	//}

	system("pause");
	return 0;
}

运行结果:

题目来自网络。

时间: 2024-10-10 10:39:56

一道笔试题目的相关文章

一道笔试题目引发的思考

题目 下面说法错误的是(C) A.static成员函数没有this指针. B.static成员函数不能直接访问非static成员. C.static数据成员不能在类的定义体中初始化. D.static数据成员独立于类的任意对象而存在,不是该类类型对象的组成部分. 分析 A选项 静态成员函数由于不是与任何的对象相联系,因此它不具有this指针.从这个意义上讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数. B选项 //如下的类定义,下面这样stati

算法学习 并查集(笔试题目:找同伙)

题目背景太长,记得不清楚,暂参考<啊哈算法>一书,根据笔试题目大意改编如下: 警察正要捉获某地区的犯罪团伙,由于强盗人数过大,想查清楚有几个团伙非常困难. 根据上级指示,需要首先尽快抓获强盗A所在的团伙,这需要掌握 1 所在团伙的人数.先有资料如下: 强盗1 和 强盗2 是同伙 强盗3 和 强盗4 是同伙 强盗2 和 强盗5 是同伙 强盗3 和 强盗2 是同伙 注意,强盗的同伙的同伙也是同伙,问  强盗1 的同伙(不包括1自己)有多少人? 该题形式化表示如下: 每个测试实例首先包括2个整数:N

2017 校招网上笔试题目

2017 校招网上笔试题目 做了一下某大厂的笔试的题目 1. 一个表, visit(cookie_id, area1, area2, date) 给出各种查询策略中, 哪一种最好,每一条SQL语句大同小异, 几乎看不出区别, 还有6,7个选项,同时字数很长.一般的SQL语句好像有根据查询的嵌套顺序来比较差异的,但是这道题反而没有.反正蒙了一个.没有数字可算,心里没有底,应该证明了SQL语法可能会很大地影响查询效率. 2. 给了几个条件,判断你的名次.又是球赛的问题,考查你的推理能力. 3. en

几道经典的SQL笔试题目

几道经典的SQL笔试题目(有答案) (1)表名:购物信息 购物人      商品名称     数量 A            甲          2 B            乙          4 C            丙          1 A            丁          2 B            丙          5 …… (其他用户实验的记录大家可自行插入) 给出所有购入商品为两种或两种以上的购物人记录 答:select * from 购物信息 wher

分享两道笔试题目

前几天,给成都的某家公司投了个简历,给发了两道笔试题目,与大家分享一下.附上自己的解题过程,写得不好的地方,还请博友多多指教. 一 .  设计程序输出销售及收费清单 一个电商平台对在其平台之上销售的除了书籍.食品以及药物以外的商品收取 10% 的费用.而对于进口的商品则额外收取 5% 的附加费用.对于平台抽取的费用计算时,舍入的规则是:对于 n% 抽取率,价格为 p的商品, np/100 的值就近舍入到 0.05(如: 7.125 -> 7.15, 6.66 -> 6.70 ). 卖家卖出一些

猜数字游戏(笔试题目)

在CSDN上看到一个笔试题目..收藏一下 机试就一个题目:写一个猜数字游戏,电脑随机生成一个数字(比如 1-100 之间)让玩家猜,如果没猜中,就告诉玩家猜的数字是大了还是小了,直到猜中为止,最后告诉玩家猜了多少次.整个游戏用最简单的控制台输入输出就行 package com.sun.demo; import java.util.Random; import java.util.Scanner; public class Test01 { public static void main(Stri

GameLoft笔试题目 [Online Network Programmer Test]

gameloft 笔试题目是英文的,前面全部是理论的,最后两道是编程题目. 1 2 3 4 5 最后两道编程题目 其实还算简单: #include <stdio.h> #include <string.h> #include <iostream> std::string itoa(int number){ char nstr[15]; sprintf(nstr,"%d",number); return std::string(nstr); } usi

之前同事问到的一道python题目

Python面试题 之前同事问了一道Python题目如下,暂时归类为面试题 题目:把类似'123.456'的字符串转换成浮点型数据 方法一: >>> print '{:.3f}'.format(float('123.456')) >>> 123.456 方法二:指定map.reduce高阶函数 思路:先处理小数点,然后在整数位.小数位相加.步骤如下 s = '123.456' 处理小数:使用字符串切片方式. s.split('.') 这样就得到长度为2的数组['123'

一道算法题目, 二行代码, Binary Tree

June 8, 2015 我最喜欢的一道算法题目, 二行代码. 编程序需要很强的逻辑思维, 多问几个为什么, 可不可以简化.想一想, 二行代码, 五分钟就可以搞定; 2015年网上大家热议的 Homebrew 的作者 Max Howell 面试 Google 挂掉的一题, 二叉树反转, 七行代码, 相比二行代码, 情有可原! Problem: return the count of binary tree with only one child 想一想, 你要写几行, 六七行, 或小于十行? S