精华内容
下载资源
问答
  • 几个幸运

    千次阅读 2018-04-11 22:08:03
    标题:第几个幸运 x星球旅行的游客都被发给一个整数,作为游客编号。 x星的国王有个怪癖,他只喜欢数字3,5和7。 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。 我们来看前10个幸运数字是:...

    标题:第几个幸运数

    到x星球旅行的游客都被发给一个整数,作为游客编号。
    x星的国王有个怪癖,他只喜欢数字3,5和7。
    国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。

    我们来看前10个幸运数字是:
    3 5 7 9 15 21 25 27 35 45
    因而第11个幸运数字是:49

    小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。

    请你帮小明计算一下,59084709587505是第几个幸运数字。

    需要提交的是一个整数,请不要填写任何多余内容。

    【答案】1905

    【解题思路】

     

    直接寻找幸运数,任何一个幸运数数都是2^i * 3^j * 5^m这种形式的,因此不断寻找幸运数数,将他们按从小到大的顺序进行排列,直到找到目标幸运数为止。首先定义一个数组存放幸运数,初始化数组luck[0] = 1,然后从3,5,7这三个种子中挑选,选择luck[0]*3,luck[0]*5,luck[0]*7中最小的数为新的幸运数,显然应该选择3,即luck[1] = 3,然后在从3,5,7中选择,这时应该是从luck[1]*3,luck[0]*5,luck[0]*7中进行选择,显然选择5,即luck[2] = 5,然后再从luck[1]*3,luck[1]*5,luck[0]*7中选择最小的,选择2,即luck[3] = 7,依次进行如上操作,得到最终的结果。

    #define N 59084709587505
    #include<iostream>
    using namespace std;
    int main(){
    	int i;
    	long long*luck=new long long[2000];
    	for(int j=0;j<2000;j++){
    		luck[j]=0;
    	}
    	luck[0]=1;
    	int num_3=0;
    	int num_5=0;
    	int num_7=0;
    /*不能设luck[i]为结束条件,因为在这里luck[i]=0,luck[i]与i不同步,当i=13时luck[13]还在等于0*/
    	for( i=1;luck[i-1]<N;i++){
    /*min()函数的形参是两个而不是三个,故需要调用两个min函数比较三个数中的最小值*/
    		luck[i]=min(min(luck[num_3]*3,luck[num_5]*5),luck[num_7]*7);
    		if(luck[i]/luck[num_3]==3)
    			num_3++;
    		if(luck[i]/luck[num_5]==5)
    			num_5++;
    		if(luck[i]/luck[num_7]==7)
    			num_7++;
    	}
    	cout<<i-1<<endl;
    	cout<<luck[i-1]<<endl;
    } 

    以上代码即实现理想结果,但我要强调一下下面这几行代码

                    if(luck[i]/luck[num_3]==3)
    			num_3++;
    		if(luck[i]/luck[num_5]==5)
    			num_5++;
    		if(luck[i]/luck[num_7]==7)
    			num_7++;

    这几段代码的意思是找出到底是3,5,7中哪个种子计算出的luck[i],当然,有可能有多个种子,比如luck[num_3]*3 == luck[num_5]*5时,需要把num_3++,并且要使num_5++。因此这里不能使用if-else,要全部使用if进行判断。
     

    展开全文
  • Java实现第九届蓝桥杯第几个幸运数字

    万次阅读 多人点赞 2019-07-28 13:01:12
    几个幸运数字 x星球旅行的游客都被发给一个整数,作为游客编号。 x星的国王有个怪癖,他只喜欢数字3,5和7。 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。 我们来看前10个幸运数字是: 3 5 ...
    
     第几个幸运数字
    
    

    到x星球旅行的游客都被发给一个整数,作为游客编号。
    x星的国王有个怪癖,他只喜欢数字3,5和7。
    国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。

    我们来看前10个幸运数字是:
    3 5 7 9 15 21 25 27 35 45
    因而第11个幸运数字是:49

    小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。

    请你帮小明计算一下,59084709587505是第几个幸运数字。

    需要提交的是一个整数,请不要填写任何多余内容。

    public static void main(String[] args) {
    //		该数已经超过了int类型的最大长度,只能用long型
    		Long l=59084709587505L;
    		int sum=0;
    		for(int i=0;i<30;i++) {
    			for(int j=0;j<30;j++) {
    				for(int k=0;k<30;k++) {
    					if((Math.pow(3,i)*Math.pow(5,j)*Math.pow(7,k))<=l) {
    						sum+=1;
    					}
    				}
    			}
    		}
    //		减去最开始的1*1*1=1的数
    		System.out.println(sum-1);
    	}
    
    展开全文
  • 几个幸运 x星球旅行的游客都被发给一个整数,作为游客编号。 x星的国王有个怪癖,他只喜欢数字3,5和7。 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。 我们来看前10...

    第几个幸运数

    				到x星球旅行的游客都被发给一个整数,作为游客编号。
    				x星的国王有个怪癖,他只喜欢数字3,5和7。
    				国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。
    				
    				我们来看前10个幸运数字是:
    				3 5 7 9 15 21 25 27 35 45
    				因而第11个幸运数字是:49
    				
    				小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。
    				
    				请你帮小明计算一下,59084709587505是第几个幸运数字。
    				
    				需要提交的是一个整数,请不要填写任何多余内容。
    

    思路:
    这题要仔细看题目,关键在于,准确地说出这是第几个幸运数字,所以我们不必判断1~59084709587505有多少个幸运数,只要根据条件,算出第几个只含有因子:3,5,7的数是59084709587505,用到了逆向思维;

    package Lqb;
    
    public class Text30 {
    
    	public static void main(String[] args) {
    		long MAX =  59084709587505l;
    		int count = 0;
    		for ( long i = 0; Math.pow(3,i) < MAX; ++i)
    			for ( long j = 0; Math.pow(5,j) < MAX; ++j)
    				for ( long k = 0; Math.pow(7,k) < MAX; ++k)
    					if (Math.pow(3,i) * Math.pow(5,j) * Math.pow (7,k) < MAX )
    						count ++;
    		System.out.println(count);		
    	}
    }
    
    
    展开全文
  • 题目一个只有2、3、5或7的质数的数被称为一个不起眼的数。第1、2、3、4、5、6、7、8、9、10、12、14、15、16、18、20、21、24、25、27、...我的想法:分别算出来一个数是2,3,5,7的次方,再将次数相乘,然后发...

    题目

    一个只有2、3、5或7的质数的数被称为一个不起眼的数。第1、2、3、4、5、6、7、8、9、10、12、14、15、16、18、20、21、24、25、27、……显示前20个不起眼的数字。

    现在给出一个简单的数字,请编写一个程序来计算这个简单数字的因数个数。例如,4是一个不起眼的,它有3个因数(1,2,4);12有6个因数。

    我的想法:分别算出来一个数是2,3,5,7的几次方,再将次数相乘,然后发现结果不对,好像只有一个质因子的时候这么干不行,因为只有一个你没法和人家匹配啊,于是我就把只有一个质因子的情况单独讨论,结果还是不对,好像还落了这个数本身(不和其他数匹配的情况)于是又把每个质因子的次数再加在一起,最后再加一(本身1就是一个因子),结果都对,可是还是wa........,真烦人。

    实际答案还是先算出来一个数是2,3,5,7的几次方,但要将他们的次数分别加一再相乘(即把0次方也算在里面),这样就可以避免只有一个质因子时要单独算的情况,也不用最后再加一了。

    主要代码如下
     while (scanf("%I64d", &n), n)
        {
            Int num[4] = {2, 3, 5, 7};
            int ans[4] = {1, 1, 1, 1};//由在算的时候没有把0个2,0个3,0个5或者0个7的情况计算进去,所以一开始就加上
            for (int i = 0; i < n; i++)
            {
                while (n != 1 && n % num[i] == 0)//算出2,3,5,7的个数
                {
                    ans[i]++;
                    n /= num[i];
                }
            }
            printf("%d\n", ans[0] * ans[1] * ans[2] * ans[3]);
        }
    

    展开全文
  • 15个数按从小大顺序存放在一个数组中,输入一个数,输出一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。 #include <stdio.h> #include <stdlib.h>...
  • /*有15个数按由大小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中 第几个元素的值。如果该数不在数组中,则输出“无此数”。*/ #include <stdio.h> int main() { int a[15]; int...
  • 15个数按由大小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数” 2 解法 //C程序设计第五版(谭浩强) //章节:第六章 利用数组处理...
  • 习题 5.8 有15个数按由大小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。 代码块: #include &lt;iostream&gt; ...
  • 蓝桥杯第几个幸运

    千次阅读 2018-05-16 21:06:38
    我们来看前10个幸运数字是:3 5 7 9 15 21 25 27 35 45因而第11个幸运数字是:49小明领了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不奖品。请你帮...
  • 定点几个知识点

    千次阅读 2017-04-01 10:54:25
    的定标概念 通过设定小数点在数据的不同位置,就可以表示不同大小和精度的小数。 Q和S表示法 以16位数据为例,Q和S表示法的存储格式为: Qx:x位用来表示小数部分,(15-x)位用来表示整数。 Sx.y:其中x+y=15...
  • 重新输入一个数,编写查找算法找到该数是数组中的第几个元素的值,如果该数不在数组中,则输出“无此数”。 编程基础第六版 课后题 代码如下 #include <stdio.h> #include <math.h> int main() { int i,...
  • 15个数存放在一个数组中,输入一个数,要求用折半法找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。
  • int a[15]={29,27,25,23,21,19,17,15,13,11,9,7,5,3,1}; int i,n,low,high,mid; printf("数组a数据依次为:\n"); for(i=0;i<15;i++) printf("%d ",a[i]); printf("\n\n请选择数组中任意一值,并输出:")...
  • 蓝桥杯省赛 第几个幸运

    千次阅读 2018-04-01 22:39:09
    我们来看前10个幸运数字是:3 5 7 9 15 21 25 27 35 45因而第11个幸运数字是:49小明领了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不奖品。请你帮...
  • #include<iostream> using namespace std; int main() { int a[15]={15,14,13,12,11,10,9,8,7,6,5,4...//这题是小!!!!!!! int l=0,h=14,x,m; cout<<"输入查找的:"; cin>>x; ...
  • 算法题--第几个幸运

    千次阅读 2019-03-02 20:58:25
    x星球旅行的游客都被发给一个整数,作为游客编号。 x星的国王有个怪癖,他只喜欢数字3,5和7。...小明领了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领...
  • 判断一个数的阶乘的末尾有几个0

    千次阅读 2016-09-23 17:23:49
    进行质数分解后,一共几个5,因为2的个数显然多于5。比如计算25!的末尾0的个数,包含55,10,15,20,25,其中25中包含两个5,所以一共包含6个5,25!的末尾有6个0. public static void main(String[] args) { //...
  • 数组里面获取最大的n算法思路 首先获取前n数字,进行排序,之后遍历原数组,与新数组中最小的进行比较,如果大于新数组中的最小值,则进行替换,并将新数组再次排序,一次类推 go语言实现 package main...
  • 注意此题是要求用拆半法#include<stdio.h> ...{ int t[9]={1,3,5,7,9,11,13,15,17}; int start=0,end=8,c,mid; //start表示查找区间开始的位置,end是查找区间的最末位置 scanf("%d",&c); while(start) { mid
  • Pandas 关于统计个数几个总结

    万次阅读 2018-12-16 11:36:47
    我们都知道 df.value_counts()是统计个数的小能手。那么怎么更熟练地运用起来呢? 以下是自己总结地种场景: &gt;&gt;&gt;&gt;&gt;df 0 美国 1 中国大陆 香港 2 法国 3 美国 4 意大利 5 ....
  • 求一个数阶乘末尾有几个

    千次阅读 2016-11-07 23:26:18
    昨天校赛有一道题,是求一个数的阶乘,末尾有几个零。当时是没有做出来的。今天网上看了下,明白了原理。其实很多人都写过了,自己之所以再写,一是为了加强自己的理解,二是有的地方或许可以写得更详细,也写出自己...
  • #include<stdio.h> #include<math.h> #include<... printf("请输入15个数(由大小):");//15 14 13 12 11 10 9 8 7 6 5 4 3 2 1//1 3 4 5 6 8 12 23 34 44 45 56 57 58 68 for ...
  • 15个数按从小大的顺序存放在一个数组中。输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,输出“不在表中”。 折半查找法的原理是:对于一个升序数组,将中间的数和输入的数...
  • 在第一份工作结束的时候,还是个java小白...今天发一下自己的解决思路,思路很简单,适合初级程序员:1、假定max个数,抽取min个数字2、初始化一个组合为数字 0-min3、固定min-1个数字,找出其中一个数字的可替换可...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 753,336
精华内容 301,334
关键字:

从5数到15,一共数了几个数