一道笔试题目
2014-10-11 21:51
204 查看
题目描述:编写一个函数,输入一个正整数n,返回一个最小的正整数m(m至少包含两位数),使得m的各位乘积等于n,如果某个n不存在这样的m,则返回-1,
例如:
输入:12
输出:26
输入:100
输出:455
输入:7
返回:17
题目来自网络。
例如:
输入: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; }运行结果:
题目来自网络。
相关文章推荐
- 一道编程之美上的问题-腾讯的笔试题目:求数组的部分乘积
- 一道笔试题目
- 一道有趣的笔试题目!
- 一道笔试题目
- 一道网易笔试题目-几何相关
- 歌乐电子一道很简单的笔试题目竟然搞错了!!!
- 2012校园招聘的一道笔试题目
- 杨辉三角与一道经典笔试面试题目
- 一道笔试题目引发的思考
- 微软一道笔试题目
- 关于js字符串替换的一道笔试题目
- 2015 百度笔试的一道经典题目
- 一道android笔试题目
- 一道笔试题 题目是这样的:判断一个小于1000的正整数是否为素数。
- 编程珠玑的一道令我surprise的题目,竟然和Google的笔试题一样。
- 一道java笔试题目:Vector和ArrayList的区别
- 子集生成问题-一道笔试题目
- 平面n点,最快确定是否有三点共线——一道阿里笔试题目
- 歌乐电子一道很简单的笔试题目竟然搞错了!!!
- 编程珠玑的一道令我surprise的题目,竟然和Google的笔试题一样。