【牛客网】算法编程题汇总
来源:互联网 发布:淘宝网首页制作 编辑:程序博客网 时间:2024/06/11 12:52
1.优雅数:
小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。
例如:半径的平方如果为25
优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。
输入描述:
输入为一个整数,即为圆半径的平方,范围在32位int范围内。
输出描述:
输出为一个整数,即为优雅的点的个数
JavaScript版
var getNum = function(radix){ var sum = Math.floor(Math.sqrt(radix)) == Math.sqrt(radix)?4:0; console.log(sum); var range = Math.sqrt(radix); for(i=1;i<range;i++){ var y = Math.sqrt(radix - i*i); sum+= Math.floor(y) == y?4:0; console.log("i: "+i+" sum: "+sum); } return sum;}
C语言版
#include<stdio.h>#include<math.h>int main(){ int R=0; int sum = 0; long double temp = 0; scanf("%d",&R); temp = sqrt(R); sum = floor(temp)==temp?4:0; for(int i = 1;i<sqrt(R);i++){ temp = sqrt(R - i*i); sum += floor(temp)==temp?4:0; } printf("%d",sum);}
C语言需要注意用双精度
2.数字反转
对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?
输入描述:
输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。
输出描述:
输出rev(rev(x) + rev(y))的值
#include<stdio.h>int rev(int m){ if(m<10){ return m; }else if(m<100){ int n1 = m/10; int n2 = m%10; return n2*10+n1; }else if(m<1000) { int n1= m/100; int n2 = (m/10 )%10; int n3 = (m%10); return n3*100+n2*10+n1; }else{ int n1= m/1000; int n2 = (m/100 )%10; int n3 = (m/10)%10; int n4 = m%10; return n4*1000+n3*100+n2*10+n1; }};int main(){ int x,y; scanf("%d%d",&x,&y); x = rev(x) +rev(y); printf("%d",rev(x));}
阅读全文
1 0
- 【牛客网】算法编程题汇总
- 编程面试10大算法概念汇总
- 编程10大算法概念汇总
- 算法学习--编程易错小知识记录汇总
- 编程基础理论题汇总
- 编程题汇总
- 编程题汇总1
- 编程题汇总2
- 编程题汇总3
- 编程题汇总4
- 编程题汇总5
- 算法题汇总
- 算法题汇总
- 常见算法题汇总
- 牛客编程题汇总
- 笔试&面试算法题汇总
- 各类算法笔试题汇总
- 编程面试的10大算法概念汇总
- 人生苦短 须用Kotlin
- codeforces675D set
- 网络结构可视化步骤
- Build Palindrome
- codeforces——520A——Pangram
- 【牛客网】算法编程题汇总
- 用smali写一个java加法程序和HelloWorld程序
- 计蒜客 无脑博士的试管们 (bfs+模拟)
- SQLAlchemy查询过滤器和执行函数
- Torch
- OnClientClick=“” 返回值为false,为什么还能提交解决方法
- VPS主机
- 【2014年第五届蓝桥杯C/C++程序设计本科B组决赛 生物芯片(编程大题) 】
- SharePreference