京东数据与算法岗之欲哭无泪了
第一道可能我自己的问题,第二道为什么赛码通不过。。。。。
上题:
题目描述:
小B热衷于体育运动赛事活动,这样她就可以发挥自己的一项特长——赛事解说。小B因为自身的高颜值,加之评论犀利到位、语言诙谐,因此拥有一大批粉丝。
一年一度的运动会又即将开始,这将是一个激动人心的季节,每个人都有自己的目标:运动员希望奋力争夺奖牌,观众希望欣赏到心仪运动员的精彩表现,解说员则要争抢更方便的位置以便观看和评论。
今天的赛事在三个圆形的运动场同时举行,小B希望能够在此次的赛事解说中再展风姿,占据最佳的观察点,从而能够观看所有运动场上的比赛。由于今天的所有赛事同等重要,她希望以相同视角(观察点到运动场边缘切线的夹角)观看运动场。如果满足条件的观察点不止一个,她希望首选具有最大视角的观察点。
小B对寻找观察点不是很在行,她希望请你帮忙寻找最合适的观察点。需要指出的是,运动场馆都是露天的,解说员的视线不受遮挡。
输入
输入中有多组测试数据。每组测试数据包含3行,每行代表一个运动场。每行的格式为x y r,其中(x,
y)为运动场中心的坐标,r为运动场的半径,-1000<=x, y<=1000,1<= r
<=1000。所有数据均为正数,运动场互不相交(无公共点)且其中心点不在同一直线上。
输出
对每组测试数据,若存在最佳观察点,则在单独的一行里输出改点的坐标(保留6位小数),否则输出“No”。
样例输入
0 0 10
60 0 10
30 30 10
样例输出
30.000000 0.000000
小明同学学习了不同的进制之后,拿起了一些数字做起了游戏。小明同学知道,在日常生活中我们最常用的是十进制数,而在计算机中,二进制数也很常用。现在对于一个数字x,小明同学定义出了两个函数f(x)和g(x)。
f(x)表示把x这个数用十进制写出后各个数位上的数字之和。如f(123)=1+2+3=6。
g(x)表示把x这个数用二进制写出后各个数位上的数字之和。如123的二进制表示为1111011,那么g(123)=1+1+1+1+0+1+1=6。
小明同学发现对于一些正整数x满足f(x)=g(x),他把这种数字称为幸运数,现在他想知道,小于等于n的幸运数有多少个。
输入
第一行一个整数T(T<=10000)表示数据组数,每组数据输入一个数n(n<=100000)。
输出
每组数据输出一行,小于等于n的幸运数个数。
样例输入
3
1
5
21
样例输出
1
1
3
Hint
小于等于21的三个幸运数分别为:1,20,21。
第一道代码我就不上传,太难看的代码,第二道,各位看官,我为什么就通不过==
#include<iostream> using namespace std; int f(int n){ int t=n; int res=0; while(t>0){ res+=t%10; t=t/10; } return res; } int g(int n){ int t=n; int res=0; while(t>0){ res+=t%2; t=t/2; } return res; } int main(){ int T; cin>>T; for(int ss=0;ss<T;ss++){ int n; cin>>n; int count=0; for(int i=1;i<=n;i++){ if(f(i)==g(i)){ count++; } } cout<<count<<endl; } return 0; } 认真想一下,其实编程题目真心不难,关键在于平时的编码习惯以及严谨的思维