SGU - 107 - 987654321 problem (简单数学!)

SGU - 107

987654321 problem

Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u

Submit Status

Description

For given number N you must output amount of N-digit numbers, such, that last digits of their square is equal to 987654321.

Input

Input contains integer number N (1<=N<=106)

Output

Write answer to the output.

Sample Input

8

Sample Output

0

Source

还挺好玩的这题

思路:先直接暴力找出9位以内的符合题意的数,发现有8个,而且全都是9位数,依次是

//    111111111

//    119357639

//    380642361

//    388888889

//    611111111

//    619357639

//    880642361

//    888888889 

8位数时,ans = 0,9位数时,ans = 8 

而根据排列组合有10位数时,ans=9*8,大于10位时,ans=9*(10^(n-10))*8。。

AC代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int n;
	scanf("%d", &n);
	if(n<9)	printf("0\n");
	else if(n == 9)	printf("8\n");
	else
	{
		printf("72");
		for(int i=11; i<=n; i++)
		{
			printf("0");
		}
		printf("\n");
	}
	return 0;
}
时间: 2025-01-01 11:33:21

SGU - 107 - 987654321 problem (简单数学!)的相关文章

SGU - 123 - The sum (简单数学!)

SGU - 123 The sum Time Limit: 250MS   Memory Limit: 4096KB   64bit IO Format: %I64d & %I64u Submit Status Description Here is your second problem, keep calm and solve it . Nacci sequence of numbers is known to all : F1 = 1; F2 = 1; Fn+1 = Fn + Fn-1,

HDU 1018 Big Number (简单数学)

Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25649    Accepted Submission(s): 11635 Problem Description In many applications very large integers numbers are required. Some of these

SGU 107

首先,由题意,设符合条件的数是X,则X*X ==(同余画不出,用两个等号代替)987654321(MOD 10^9) 则X^2 = K*10^9+987654321. 易知当X>10^9时,X^2 == (X-10^9) (MOD 10^9)(这个可以通过完全平方公式推导) 所以只要考虑X<=10^9的情况. 枚举可以得X只有8个值,且都是九位数. 所以N<=8时输出0,N=9时输出8. N>=10时: N=10,第一位可以是1~9,后九位是上述的8个X中的一个.有72种. N=1

hdu 2200 Eddy&#39;s AC难题(简单数学。。)

题意: N个人,每个人AC的题数都不一样. Eddy想从中选出一部分人(或者全部)分成两组.必须满足第一组中的最小AC数大于第二组中的最大AC数. 问共有多少种不同的选择方案. 思路: 简单数学.. 代码: ll C(int n,int x){ ll ans=1; rep(i,1,x){ ans = ans*(n+1-i)/i; } return ans; } int main(){ int n; while(cin>>n){ ll ans = 0; rep(i,2,n){ ans += (C

hdu 1016 Prime Ring Problem (简单DFS)

Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25700    Accepted Submission(s): 11453 Problem Description A ring is compose of n circles as shown in diagram. Put natural numb

编译器--简单数学表达式计算器

做了一个能够计算简单数学表达式值的小计算器,算不上是编译器,但用到了编译器的知识.最近在看一些编译器的东西,所以动手写这个最简单的计算器,既是对那些抽象的编译器知识有个形象的认识,也为后面添加复杂的东西--语句打下基础.此计算器是以<编译原理与实践>中实现的tiny编译器为参考写的,tiny是一个值得去研究的编译器,可以说是麻雀虽小,五脏俱全.从词法分析到代码生成都有,并且代码非常清晰易懂.我觉得想要了解编译器,可以从tiny入手,去将它跑起来并分析.废话不多说,开始记录这个小计算器. 先说下

【龙书笔记】用Python实现一个简单数学表达式从中缀到后缀语法的翻译器(采用递归下降分析法)

上篇笔记介绍了语法分析相关的一些基础概念,本篇笔记根据龙书第2.5节的内容实现一个针对简单表达式的后缀式语法翻译器Demo. 备注:原书中的demo是java实例,我给出的将是逻辑一致的Python版本的实现. 在简单后缀翻译器代码实现之前,还需要介绍几个基本概念. 1. 自顶向下分析法(top-down parsing) 顾名思义,top-down分析法的思路是推导产生式时,以产生式开始符号作为root节点,从上至下依次构建其子节点,最终构造出语法分析树.在具体实现时,它会把输入字符串从左到右

简单数学(组合数+求数列通项公式)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6467 看到这题,简单数学???对不起我给数学老师丢脸了! 这里解释一下第二步到第三步:假设n=3,第二步{1*C(1,1)+1*C(1,2)+1*C(1,3)+2*C(2,2)+2*C(2,3)+3*C(3,3)},第三步{1*C(1,1)+1*C(1,2)+2*C(2,2)+1*C(1,3)+2*C(2,3)+3*C(3,3)}.可以发现是相等的 之后最后一步就是组合数求和公式2^n. 之后便可以

987654321 problem - SGU 107(找规律)

题目大意:求n位数的平方的后几位结果是987654321的个数是多少. 分析:刚看到这道题的时候怀疑过有没有这样的数,于是暴力跑了一下,发现还真有,9位的数有8个,如下: i=111111111, i*i=12345678987654321i=119357639, i*i=14246245987654321i=380642361, i*i=144888606987654321i=388888889, i*i=151234567987654321i=611111111, i*i=373456789