北邮oj1-5

1.A+B


2.A+B


3.single  number(位运算法)


https://blog.csdn.net/sacainiao/article/details/50785964

#include<stdio.h>
int main() {
    int n = 0, i = 0;
    unsigned long long one, two, three, num;
    while (scanf("%d",&n)!=EOF) {
        one = two = three = 0;
        for (i = 0; i < n; i++) {
            scanf("%lld",&num);
            three = two&num;
            two = two | one&num;
            one = one | num;
            one = one&(~three);
            two = two&(~three);
        }
        printf("%lld\n", one);
    }
    return 0;

}



4.

Three Points On A Line


#include <iostream>  
#include <math.h>  
using namespace std;  
   
typedef struct Point{  
    float x;  
    float y;  
}Point;  
   
bool isOnALine(Point a, Point b, Point c);  
float slope(Point a, Point b);  
   
int main() {  
    int caseCount;  
    bool onaline;  
    cin>>caseCount;  
    for(int i = 0; i < caseCount; i++) {  
        int pointCount;  
        cin>>pointCount;  
   
        Point ps[pointCount];  
        for(int j = 0; j < pointCount; j++) {  
            cin >> ps[j].x >> ps[j].y;  
        }  
        onaline = false;  
        if(pointCount >= 3) {  
            Point a,b,c;  
            for(int k = 0; k < pointCount && !onaline; k++) {  
                a = ps[k];  
                for(int l = k + 1; l < pointCount && !onaline; l++) {  
                    b = ps[l];  
                    for(int g = l + 1; g < pointCount && !onaline; g++) {  
                        c = ps[g];  
                        if(isOnALine(a,b,c)) {  
                            onaline = true;  
                            break;  
                        }  
                    }  
                }  
            }  
        }  
        if(onaline) {  
            cout << "Yes" << endl;  
        } else {  
            cout << "No" << endl;  
        }  
    }  
   
    return 0;  
}  
   
bool isOnALine(Point a, Point b, Point c) {  
    return (fabs(a.x * c.y + b.x * a.y + b.y * c.x - b.x * c.y - a.y * c.x - b.y * a.x) <= 1e-6);  
}  
   
float slope(Point a, Point b) {  
    return (a.y - b.y) / (a.x - b.x);  


5.

日期(比照王道机师指南九度1096改)

计算今天是今年的第几天

#include<stdio.h>

#define ISYEAP(x) x % 100 != 0 && x % 4 == 0 || x % 400 == 0 ? 1 : 0

int dayOfMonth[13][2] = {
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31
};
 
struct Date
{
int Day;
int Month;
int Year;
void nextDay() {
Day++;
if(Day>dayOfMonth[Month][ISYEAP(Year) ]) {Day= 1; Month++;if(Month> 12) {Month= 1; Year++; } }
}
};
int buf[5001][13][32];

int main() {
Date tmp;
int cnt= 0;

tmp.Day= 1;
tmp.Month = 1;
tmp.Year= 0;
while(tmp.Year!= 2101) {
buf[tmp.Year][tmp.Month][tmp.Day] =cnt;
tmp.nextDay();
cnt++;
}
int d,m,y;
int t;
scanf("%d",&t);
while(t--)
{
      scanf("%d:%d:%d",&y,&m,&d);
      printf("%d\n",buf[y][m][d] -buf[y][1][1] + 1);
}
return 0;

}
 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值