首页 > TAG信息列表 > 原数

[2001年NOIP普及组] 数的计算

我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。 输入 输入一个自然

AtCoder Beginner Contest 261 (C~F)

省流:A -2 然后 30min 过 ABCDEF 开始罚坐,看着自己 rank 一点一点掉下去一百多=_= 虽然 A -2 但是仍然懒得写 AB ABC261C NewFolder(1) 依照题意开个 std::map<string,int> 模拟就行了。AC Code ABC261D Flipping and Bonus 考虑 DP,设 \(f(i,j)\) 表示前 \(i\) 次掷骰子,并且最终

【Python_LeetCode题解系列】一行代码解题回文数

系列索引:【菜菜的刷题日记】被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路——2022/1/21 文章目录 【题目】【官方思路】【参考代码】【我的代码】【思考】 【题目】 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和

【LeetCode通关全记录】9. 回文数

【LeetCode通关全记录】9. 回文数 题目地址:9. 回文数 转换成字符串并反转、比较字符串(实际上就是转换成rune切片并且比较)的解法因为太简单所以这里就不分享啦,主要来看看怎样不转换成字符串解决这个问题。 解法:反转数字并和原数比较 首先考虑特殊情况: 0是回文数,这个不会影响

离散化 _

在一些问题中,我们只关心 n 个数字之间的相对大小关系,而不关心它们具体是多少。因此,我们可以用一种叫离散化的技术来将数字映射到 1 ∼ n 的整数, 从而降低问题规模,简化运算。 第一种方法:将所有数字排序,然后再重新遍历一遍所有的数字, 通过二分查找找到它们的 “排名”,然后用排

3. 输入一个正整数求出它是几位数:输出原数和位数。

1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 int digit; 6 7 int main(void) { 8 void count(string str); 9 printf("Please input numbers:\n"); 10 string text; 11 cin >> text; 12

题目:把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。

这题的考点很诡异,不会的看到这种题就 ...  ♂上+♂ 有点类似于回文数,考点为通过while循环进行取模和取余运算,难度为:1颗星   1 #include<stdio.h> 2 int main() 3 { 4 int n; // 用于获取用户输入的数 5 int tag = 0; // 用于输出 6 printf("please

[JSC2021 A~D + F]

半小时打完了\(A~D\),想要一发\(F\)冲进前\(100\),结果平衡树常数大\(T\)了。据说\(G\)是矩阵树定。 \(A\) 放代码吧。 // code by Dix_ #include<bits/stdc++.h> #define ll long long inline ll read(){ char C=getchar(); ll N=0 , F=1; while(('0' > C || C >

1、亲密数(什么叫有趣的灵魂啊~战术后仰)

批话时间   遥想毕业那年,

提取一个int类型数最右侧的1

提取一个int类型数最右侧的1 算法描述 把一个int类型的数,提取出最右侧的1来,例如: 6 对应的二进制位 0000 0110,那么取出来的应该是0000 0010 算法思路 对原数0000 0110取反,将原数右侧1右边的0位全变成了1(1111 1001), 这时候如果加1,会产生进位到原数右侧非零位,信息得以记录,

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

思路:一开始想着可以通过对原数 * 10 然后对10 取余即可 但取余的代价比较高,后面改成原数 + 0.5 后转成整数,这种方式效率更高 private static void round(double n){ int num = (int) (n + 0.5); System.out.println(num); }  

题解 CF1119A 【Ilya and a Colorful Walk】

此题就是:给你一个数组,让你找出两个不同的元素,并让它们的下标差距最大。 思路:从2到n,如果与1不同,记录距离,与原数比较,取大。 从1到n-1,如果与n不同,记录距离,与原数比较,取大。 AC代码(你们最想要的) #include<bits/stdc++.h>using namespace std;int main(){ int n,a[300010],i,ans=0

异或

1 (1)使特定位翻转 2 3   假设有01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行∧运算,即 4 5    6 7 结果值的低4位正好是原数低4位的翻转。要使哪几位翻转就将与其∧运算的该几位置为1即可。这是因为原数中值为1的位与1进行∧运算得0,原数中的位值0与1进行

【CH4302】Interval GCD

思路:线段树维护a的差分数组的gcd, 因为$gcd(a_1,a_2,a_3,...,a_n)=gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})$。 原区间修改可以转化为差分数组上的两次单点修改。 因为实际计算时还需要原数,所以用树状数组维护b的增减量。 询问时,用这条语句即可: printf("%lld\n",abs(gcd(a[L]+szs