The Special Number

The Special Number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1377    Accepted Submission(s): 380


Problem Description
In this problem, we assume the positive integer with the following properties are called ‘the special number’:
1) The special number is a non-negative integer without any leading zero.
2) The numbers in every digit of the special number is unique ,in decimal system.
Of course,it is easy to check whether one integer is a ‘special number’ or not, for instances, 1532 is the ‘special number’ and 101 is not. However, we just want to know the quantity of the special numbers that is less than N in this problem.
 

Input
The input will consist of a series of signed integers which are not bigger than 10,000,000. one integer per line. (You may assume that there are no more than 20000 test cases)
 

Output
For each case, output the quantity of the special numbers that is less than N in a single line.
 

Sample Input
  
  
10 12
 

Sample Output
  
  
9 10
 
/*
题意:
给你一个数n,要求你求出小于n的special number的个数。special number的定义:
1.没有前导0;
2.每位上的数字不一样,即101不是,111也不是

思路:
类似打表先求出1-10000000之间满足special number的数据存在a[]中
再用二分查询查找输入的n位于a[]的下标是多少,即答案。
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10000005
int a[MAX] , j = 0 ;
void fun()
{
	int i ,b[10];
	for( i = 1; i <=10000000 ; i++) //枚举1到MAX之间的所有数据,判断是否满足special number的要求,满足则保存到a[]
	{
		int m = i ,flag = 0 ;
		memset(b,0,sizeof(b));
		while(m) //判断是否有位数相同
		{
			b[m%10] ++ ;
			if(b[m%10]>=2)
			{
				flag =1 ;
				break;
			}
			m /= 10 ;
		}
		if(!flag)
			a[j++] = i ;
	}
}

/*二分查找*/
int Binary_Search(int x)
{
	int low = 0 , high = j-1 ,mid ;
	while(low <= high)
	{
		mid = (low + high) / 2 ;
		if(a[mid] < x)
			low = mid + 1;
		else
			high = mid - 1 ;
	}
	return low ;
}
int main(void)
{
	fun();
	int m ;
	while(scanf("%d",&m) != EOF)
	{
		printf("%d\n",Binary_Search(m));
	}
	return 0;
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Many SQL texts attempt to serve as an encyclopedic reference on SQL syntax — an approach that is often counterproductive, because that information is readily available in online references published by the major database vendors. For SQL beginners, it’s more important for a book to focus on general concepts and to offer clear explanations and examples of what various SQL statements can accomplish. This is that book. A number of features make The Language of SQL unique among introductory SQL books. First, you will not be required to download software or sit with a computer as you read the text. The intent of this book is to provide examples of SQL usage that can be understood simply by reading. Second, topics are organized in an intuitive and logical sequence. SQL keywords are introduced one at a time, allowing you to grow your understanding as you encounter new terms and concepts. Finally, this book covers the syntax of three widely used databases: Microsoft SQL Server, MySQL, and Oracle. Special “Database Differences” sidebars clearly show you any differences in syntax among these three databases, and instructions are included on how to obtain and install free versions of the databases. This is the only book you need to gain a quick working knowledge of SQL and relational databases. Learn How To… Use SQL to retrieve data from relational databases Apply functions and calculations to data Group and summarize data in a variety of useful ways Use complex logic to retrieve only the data you need Update data and create new tables Design relational databases so that data retrieval is easy and intuitive Use spreadsheets to transform your data into meaningful displays Retrieve data from multiple tables via joins, subqueries, views, and set logic Create, modify, and execute stored procedures Install Microsoft SQL Server, MySQL, or Oracle
修正了第四版中的一些代码的bug,并且增加了一些新题。由于是高清版,文件大小超过上传限制,需要和下卷一起解压。 Book Description Publication Date: August 22, 2011 Now in the 5th edition, Cracking the Coding Interview gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice. The full list of topics are as follows: The Interview Process This section offers an overview on questions are selected and how you will be evaluated. What happens when you get a question wrong? When should you start preparing, and how? What language should you use? All these questions and more are answered. Behind the Scenes Learn what happens behind the scenes during your interview, how decisions really get made, who you interview with, and what they ask you. Companies covered include Google, Amazon, Yahoo, Microsoft, Apple and Facebook. Special Situations This section explains the process for experience candidates, Program Managers, Dev Managers, Testers / SDETs, and more. Learn what your interviewers are looking for and how much code you need to know. Show More Before the Interview In order to ace the interview, you first need to get an interview. This section describes what a software engineer's resume should look like and what you should be doing well before your interview. Behavioral Preparation Although most of a software engineering interview will be technical, behavioral questions matter too. This section covers how to prepare for behavioral questions and how to give strong, structured responses. Technical Questions (+ 5 Algorithm Approaches) This section covers how to prepare for technical questions (without wasting your time) and teaches actionable ways to solve the trickiest algorithm problems. It also teaches you what exactly "good coding" is when it comes to an interview. 150 Programming Questions and Answers This section forms the bulk of the book. Each section opens with a discussion of the core knowledge and strategies to tackle this type of question, diving into exactly how you break down and solve it. Topics covered include Arrays and Strings Linked Lists Stacks and Queues Trees and Graphs Bit Manipulation Brain Teasers Mathematics and Probability Object-Oriented Design Recursion and Dynamic Programming Sorting and Searching Scalability and Memory Limits Testing C and C++ Java Databases Threads and Locks For the widest degree of readability, the solutions are almost entirely written with Java (with the exception of C / C++ questions). A link is provided with the book so that you can download, compile, and play with the solutions yourself. Changes from the Fourth Edition: The fifth edition includes over 200 pages of new content, bringing the book from 300 pages to over 500 pages. Major revisions were done to almost every solution, including a number of alternate solutions added. The introductory chapters were massively expanded, as were the opening of each of the chapters under Technical Questions. In addition, 24 new questions were added. Cracking the Coding Interview, Fifth Edition is the most expansive, detailed guide on how to ace your software development / programming interviews.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值