精华内容
下载资源
问答
  • Java实现第届蓝桥杯第几个幸运数字
    万次阅读 多人点赞
    2019-07-27 21:49:11
    第几个幸运数字

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

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

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

    请你帮小明计算一下,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);		
    	}
    }
    
    
    
    更多相关内容
  • python中如何判断个数组中有几个不相同的 输入 1 2 2 3 3 2 7 8 9 输出 6
  • 计算一个整数是(C++) 文章目录计算一个整数是(C++)前言题目:解题思路:代码:运行结果总结 前言 刘汝佳算法《算法竞赛入门经典》第二章2.4.6上机练习第题 题目: 输入一个不超过10的次方的...

    计算一个整数是几位数(C++)


    前言

    刘汝佳算法《算法竞赛入门经典》第二章2.4.6上机练习第一题

    题目:

    输入一个不超过10的九次方的正整数,输出它的位数。例如:12735的位数是5.请不要使用任何数学函数,用四则运算和循环语句实现。

    解题思路:

    判断位数可以从第一位开始数也可以从最后一位开始数。从一个整数中获取其中一位数可以用除法或者取余来得到。而我们要求的就是位数,所以并不知道第一位是第几位,应该除以几去得到它。所以我们选择从个位数入手。方法:逐个出去最后一位数,知道直到只剩一位数终止。

    代码:

    #include<iostream>
    using namespace std;
    int main()
    {
    	long long num;  //用int的话可能很有数据溢出问题,当数字过大则程序出错
    	cin>>num;
    	int i=1;  //一定要初始化,这里初始化为1是因为循环一开始就将num去掉了一位数
    	while(num/=10//数完一位数就去掉一位
    	{
    		i++;   //计数
    	} 
    	cout<<i<<endl;
    	return 0;
    }
    

    运行结果


    总结

    先分析问题,判断从哪里入手,然后运用循环就能解决问题

    展开全文
  • 如 173 + 286 = 459 且 将 286 + 173 = 459 视为同种,问满足这样条件的情况有几种 问题解法: 将9不重复数字填入9位置并且满足等式成立条件,可以看做求9数组的全排列,只要全排列满足 前3数字 + 中间3...

    问题描述:
    将1-9的9个数字不重复的填入[ ][ ][ ] + [ ][ ][ ] = [ ][ ][ ],使得等式成立
    如 173 + 286 = 459 且 将 286 + 173 = 459 视为同一种,问满足这样条件的情况有几种

    问题解法:
    将9个不重复数字填入到9个位置并且满足等式成立条件,可以看做求9个数组的全排列,只要全排列满足 前3个数字 + 中间3个数字 = 最后3个数字即可;
    为简化问题,我们先看123这三个数字的全排列,很简单,123这三个数字的全排列是
    123 ;132 ; 213 ; 231; 312 ; 321
    我是这么做的,假设将1 2 3 这三个数放到 3 个盒子中,那么所有可能数即为全排列数,我们约定 每一次往盒子里面放数的时候,都从小到大放, 比如第一个盒子,我们放1;第二个盒子因为1已经没了,所以我们放2;第三个盒子我们只能放3了;现在全部放完。但显然全排列情况不止这一种,所以我们将第三个盒子中的3取出,但取出3后还是只能放3,与刚刚的情况重复,所以我们将第二个盒子中的2也取出来,此时我们手里面有2 3 ;向第二个盒子里面放数,因为放2这种情况已经出现过,所以我们放3,第三个盒子只能放2,得出的全排列为 132;然后继续弹出,将1 2 3 这三个数均弹出,现在我们往第一个盒子里面放2(由小到大放),第二个盒子里面放1,第三个盒子里面放3,得出全排列为 213 ;…
    依次类推,直到第一个盒子里面准备放4为止;(不可能放4,因为我们手里面只有3个数)
    现在我们将上述过程图形化表示出来;是这样的:

    在这里插入图片描述
    发现了什么?发现了每一次搜索但是从第一层到最后一层,先纵向搜索,然后再横向搜索,而这正是深度优先搜索的核心思想

    当我们解决了第一个盒子的放那个数据的问题后,需要解决第二个盒子的放数据问题,而解决第二个盒子的存放数据问题和解决第一个盒子的存放数据问题的步骤是完全一致的;所以核心是如何解决第一个盒子的存放数据问题;
    因为每一次放数据都不能重复,所以我们需要知道哪些数据已经被放入盒子里,哪些没有;因为数字1 2 3 ,所以我们用一个数组来标记book[4] = {0}; 0 号元素弃之不用(方便编程);book[1] ==0表示1还未被使用,当1已经被使用后 置book[1] = 1,
    解决了哪些元素还可以用的问题,接下来就是解决程序何时停止的问题;当我们准备往第四个盒子里面放数据时,说明前3个盒子里面已经有数据,程序应该停止

    知道了如何进行 1 2 3 三个数字的全排列,1- 9的全排列也是类似的;废话不多说,直接上代码

    C++实现代码如下:

    #include "iostream"
    using namespace std;
    #include "vector"
    //问题描述,ABC + EFG = HIJ,其中A...J对应1-9中的某个数,使得等号成立,求出可能的情况
    //EFG + ABC = HIJ和上面的算是一种情况
    
    //这一问题可以用暴力枚举循环,因为某个数被用过之后就不能在被别的地方用,所以需要用桶标记法来标记该数是否被用过
    //但这就需要嵌套10层循环,然后如果如果用到了某个数,则将桶置为1,最后看所以桶之和是否为9,为9说明每个数都被用了一次
    
    //但你是否觉得过于复杂,所以我们引入了 深度优先搜索算法,该算法的 基本思路是:重点是解决当前的问题,然后解决下一个问题的步骤与解决该问题的步骤一致
    
    /*
    简单模型
    
    判断边界,不满足边界条件,则跳出深度优先搜索
    尝试每一种可能(for循环)
    {
    	继续下一步
    }
    返回
    
    
    */
    
    //解题思路:将9个空格看做待填入数的9个空格,每次填入一个,直到填满,判断是否符合条件,符合条件则+1,则推到上一个格子处重新填数
    
    
    void DFS(int step,vector<int> & v1, vector<int> & v2,int &count)//v1表示每一步填入的数;v2为标记,相当于上面的book
    {
    	//边界条件
    	//因为是9个数,从1开始,所以如果step > 9准备往第10个盒子里放数据;说明此轮搜索完毕,前9个盒子里面有数据,判断是否符合  相加和相等条件;如何跳出(边界条件,控制递归结束)
    	if (step > 9)
    	{
    		if (v1[1] * 100 + v1[2] * 10 + v1[3] + v1[4] * 100 + v1[5] * 10 + v1[6] == v1[7] * 100 + v1[8] * 10 + v1[9])
    		{
    			count++;
    
    			printf("%d%d%d+%d%d%d = %d%d%d\n", v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9]);
    		}
    		return;
    	}
    	//开始解决第一步填入的数
    	for (int i = 1;i <= 9;i++)
    	{
    		if (v2[i] == 0)
    		{
    			v1[step] = i;//将i填入第一步step中,然后置其标记为1
    			v2[i] = 1;//表明i已经被用了,不能再用了
    			//然后开始第二步
    			DFS(step + 1, v1, v2, count);
    			//释放已经用过的数,否则下次循环不能用
    			v2[i] = 0;
    		}
    	}
    	return;
    }
    
    
    
    int main()
    {
    	vector<int> v1(10,INT_MAX);
    	vector<int> v2(10, 0);
    	int count = 0;
    	DFS(1,v1,v2,count);
    	cout << "满足相加和相等条件的情况有"<<count / 2 << endl; //因为173 + 286 = 459 与 286 + 173 = 459为同一种
    	system("pause");
    	return 0;
    }
    

    程序运行部分结果
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 标题:第几个幸运 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

    思路:用1作为初始值,先将1分别乘上3、5、7得到3、5、7,再将这三个数分别乘上3、5、7得到9、15、21;15、25、35;21、35、49,以此类推。需要注意的是,为了得到59084709587505的正确序号,我们得保证前面依次乘出来的数要从小到大排序,并且不能重复,于是就要用的priority_queue和set。

    代码:

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<queue>
    #include<map>
    #include<set>
    using namespace std;
    
    priority_queue<long long,vector<long long>,greater<long long> > q;
    set<long long> s;
     
    int main()
    {
    	int ans=-1;
    	q.push(1);
    	s.insert(1);
    	while(1)
    	{
    		long long n=q.top();
    		q.pop();
    		ans++;
    		if(n==59084709587505)
    			break;
    		for(int i=3;i<=7;i+=2)
    		{
    			long long t=n*i;
    			if(!s.count(t))
    			{
    				q.push(t);
    				s.insert(t);
    			}
    		}
    	}
    	cout<<ans<<endl;
    	return 0;
    }

     

    展开全文
  • 本文先说第步,图片中数字的提取。在一年之前,我曾用C++尝试过opencv解独,但由于当时水平有限,未能完成。当时的成果就是透视变换的应用和方格数字的提取。现在稍微简化一下工作,不再倾斜的数独图
  • 条理清晰,封装合理,测试完整,linux GCC#include &lt;stdio.h&gt; typedef enum boolean{FALSE, TRUE}BOOL; //this function is to find a natural num within 3,whoes //7 decimal is the reverse to 9...
  • 猜数字游戏,1100猜数字游戏规则

    千次阅读 2020-12-21 13:49:37
    计算机实习报告面向过程编程用C语言求解实际问题、问题描述游戏类第15任务——猜数字游戏任务描述:...计算机实习报告面向过程编程用C语言求解实际问题、问题描述游戏类第15任务——猜...
  • (用函数解决)Python报游戏,输入n个人按顺序编号,个人报,输入报k,1k,报到k的退出游戏,一个人继续游戏,并求最后剩下的是号。
  • 几个幸运

    千次阅读 2020-02-05 13:29:57
    几个幸运届省赛JAVA大学C组 x星球旅行的游客都被发给个整数,作为游客编号。 x星的国王个怪癖,他只喜欢数字3,5和7。 国王规定,游客的编号如果只含有因子: 3,5,7,就可以获得份奖品。 我们来看前...
  • 标题:第几个幸运数到x星球旅行的游客都被发给个整数,作为游客编号。 x星的国王个怪癖,他只喜欢数字3,5和7。 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得份奖品。我们来看前10个幸运数字是: ...
  • 数字形式转换 描述 获得用户输入的一个正整数输入,输出该数字对应的中文字符...09对应的中文字符分别是:零二三四五六七八‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪...
  • 数字孪生:如何撑起一个万亿市场的产业变革?

    万次阅读 多人点赞 2022-03-17 08:50:09
    在过去年,这词的热度不断攀升,频繁出现在各大峰会论坛、甚至在北京冬奥会的远程协作中,可谓是备受行业内外人员的关注。那么究竟什么是数字孪生?核心技术哪些?未来的市场前景如何?存在哪些问题?将会以...
  • 输入串字符统计这串字符中0多少,1多少,…,9多少。 #include &lt;stdio.h&gt; int main() { char c; int shu[10]={0},i; while((c=getchar())!='\n') { if(c&gt;='0'&amp;&amp;...
  • 数字只出现次,那么最小的是123456789,最大的是987654321。既然不重复,那么把每位获取,比较9数字不同即可。怎样比较,9数字用a!=b&amp;&amp;a!=c......可不行,想想把获取的数字放数组...
  • [算法]9因数的

    千次阅读 2019-10-27 23:53:43
    9个因数的数 题目 Description Find the count of numbers less than N having exactly 9 divisors ...找到一个数,它含有9个因数,比如 36: 1 2 3 4 6 9 12 18 36 Input First Line of Input contai...
  • 在0–100中会9出现的整数:9、19、29、39、49、59、69、79、89、90、91、92、93、94、95、96、97、98、99,总共209出现,对数简单分析,可以发现数字可以分为两类: 与10取余得9:9、19、29、39、49、59、...
  • 把1.2.3.4.5.6.7.8.9填入方格里,使横竖斜每行三个数的和相等?这是著名的宫格问题,解答这样的问题一般要用的规律是,大小数配对,中间数据中央的解题思路。在理解这个技巧的基础上,解答宫格的问题还有个...
  • public class java{ public static void main(String[] args) { int[]nums= new int[10]; for (int i=0;i<nums.length;i++){ nums[i]=((int)(Math.random()*10000))%1001; ... System.out...
  • 1、先造个数组num[]用来标记19这几个数字是否已经被使用过。比如:num[1] = 0,表示&amp;quot;1&amp;quot; 还没被使用过,而 num[1] = 1,则表示&amp;quot;1&amp;quot;前面已经用过了,要重新取...
  • 数字按小排序

    千次阅读 多人点赞 2018-11-23 22:05:33
    分三种方法进行:1.冒泡法 #include&lt;stdio.h&gt; ...输入十整数:\n\a"); for(i=0;i&lt;10;i++) scanf("%d",&amp;a[i]); for(i=0;i&lt;9;i++) { ...
  • #include #include <Windows.h> #include using namespace std; int main(void) { ... "请输入一个1-9的数字:"; cin >> sp; switch (sp) { case 1: cout << "壹" << ...
  • 在设计数据库的时候会考虑给字段设置什么类型,设置多少长度合适,之前一直认为varchar(2)可以存储一个汉字,或者一个数字,通过今天无意间的查询,发现了这错误,来记下来 其实varchar类型可以存储多少汉字...
  • 在这实验中,我们对8位数码管的位进行控制,在进行实验时,需要将单片机的P00~P07引脚与J44相连。接口的对应关系是(P00—D0),……,(P07—D7)。将单片机的P10和P11引脚与J45相连,P10与J45上的DM对应,P11...
  • 把1、2、3、4、5、6、7、8、9,填入宫格内,使横竖斜,每行的三个数的和都相等,这个相等的和是15被称作幻和。下一步我们要确定中间数是多少,根据直觉,这个数应该是5,怎么可以证明这一点呢。大家请注意观察下面...
  • 程序分析:,十,百,千四位置都可以添加9位数字,再把不符合条件的删除。 程序源代码: 以上程序运行结果: 1 2 3 4 1 2 3 5 1 2 3 6 1 2 3 7 1 2 3 8 1 2 3 9 1 2 4 3 1 2 4 5 1 2 4 6 1 2 4 7 1 2 4 8 1 2 4...
  • 在 python 字符串中,如何检测最后一个数字 下面是使用 re.sub的方法: import re input = ['asdgaf1_hsg534', 'asdfh23_hsjd12', 'dgshg_jhfsd86'] for s in input: print re.sub('.*?([0-9]*)$',r'1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 201,563
精华内容 80,625
关键字:

从一数到九有几个数