hdu1030 金字塔平方数求层数 数学题

这题我想了好久没思路,其实看得出来和高度有关,可能觉得算高度比较麻烦,想了一会,思路就断在那里了,现在知道了基础的重要性了,有些题目,可能第一步知道怎么思考了,就会容易很多



代码看过了,思路还是很清晰的,跨过的边就是层高,左层高 ,右层高的差值,下图所示,(代码明天有空再贴吧。。。)

leve_n

right_n

left_n

其实比起来,怎么求层高是做完这题,我收获最大的,下面我来总结一下

leve 1:1->1

leve 2:3 ->4

leve 3:5 ->9

leve 5:7 ->16

...

很容易发现每层的总数其实是平方数,那leve_n= sqrt(n-1)+1,看到这个公式应该就知道为什么了,我刚怎么开始没想到,好巧妙,以为要套一层循环去遍历,还是too young

接着,我们就可以用leve_n推right_n,right_n可以看作右边第几个,right_n = ((leve_n*leve_n)-n)/2+1

同理,right_n = (leve_(n-1)*leve_(n-1)-n+1)/2



总感觉平方数求层数以后一定会遇到,先立个flag

时间: 2024-11-29 05:59:56

hdu1030 金字塔平方数求层数 数学题的相关文章

C语言(7)--高精度加法、减法、乘法、今天是星期几、四位平方数、候选人选票问题

1.高精度加法.减法.乘法 #include <stdio.h> #include <string.h> #include <malloc.h> void plus(char *a,char *b,char *c);//自定义高精度加法函数 void sub(char *a,char *b,char *c);//自定义高精度减法函数 void multiply(char *a,char *b,char *c);//自定义高精度乘法函数 int main() { char

二分(求l-r中的平方数)

题目描述 多次查询[l,r]范围内的完全平方数个数 定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x 输入描述:第一行一个数n表示查询次数之后n行每行两个数l,r输出描述:对于每个查询,输出一个数表示答案 示例1 输入 51 31 42 44 41 1000000000 输出 121131622 备注:n <= 1000000<= l <= r <= 1000000000 解题思路:暴力肯定会超时,所以很容易想到二分 #include<math.h> #inc

Project Euler 98:Anagramic squares 重排平方数

Anagramic squares By replacing each of the letters in the word CARE with 1, 2, 9, and 6 respectively, we form a square number: 1296 = 362. What is remarkable is that, by using the same digital substitutions, the anagram, RACE, also forms a square num

BZOJ2440(全然平方数)二分+莫比乌斯容斥

题意:全然平方数是指含有平方数因子的数.求第ki个非全然平方数. 解法:比較明显的二分,getsum(int middle)求1-middle有多少个非全然平方数,然后二分.求1-middle的非全然平方数个数能够用总数减掉全然平方数个数.计算全然平方数的个数用容斥: 首先加上n/(2*2)+n/(3*3)+n/(5*5)+n/(7*7)...+...然后减掉出现两次的,然后加上三次的...奇加偶减.这就是mou的原型,用mou数组计算非常easy: 代码: /*****************

平方数

package CHobery; /** * 给定7个数字2,3,5,6,7,8,9的全排列共7!个 * 7位数中有多少个平方数.试着求出这些7位平方数 * @author Administrator * */ public class Main1 { public static long b = 0,c = 0,d = 0,y = 0,g = 0; public static int m = 0; public static int n = 0; public static int k = 0

【算法】将正整数表示为平方数之和

问题来源 Timus Online Judge 网站上有这么一道题目:1073. Square Country.这道题目的输入是一个不大于 60,000 的正整数,要求计算出该正整数最少能够使用多少个正整数的平方和来表示.这道题目的时间限制是 1 秒. 问题解答 <数论导引(第5版)>([英]G.H.Hardy.E.M.Wright 著,人民邮电出版社,2008年10月第1版)第 320 页有以下定理: 定理 369(Lagrange 定理): 每个正整数都是四个平方数之和 在这个定理中,平方

C#刷遍Leetcode面试题系列连载(4):No.633 - 平方数之和

上篇文章中一道数学问题 - 自除数,今天我们接着分析 LeetCode 中的另一道数学题吧~ 今天要给大家分析的面试题是 LeetCode 上第 633 号问题, Leetcode 633 - 平方数之和 https://leetcode.com/problems/sum-of-square-numbers/ 题目描述 给定一个非负整数 c ,你要判断是否存在两个整数 a和 b,使得 \(a^2 + b^2 = c\). 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2

poj 3264 Balanced Lineup(线段数求区间最大最小值)

链接:http://poj.org/problem?id=3264 Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 32772   Accepted: 15421 Case Time Limit: 2000MS Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order.

洛谷P1206 [USACO1.2]回文平方数 Palindromic Squares

P1206 [USACO1.2]回文平方数 Palindromic Squares 271通过 501提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数.用’A’,’B’……表示10,11等等 输入输出格式 输入格式: 共