华师大 OJ 3036
来源:互联网 发布:java jar 日志输出 编辑:程序博客网 时间:2024/04/28 23:58
题目:点击打开链接
这里比较麻烦的是,对于64位整数的输入输出在不同的编译器要用不同的方式。
总之gcc 用lld就通过了测试。
/******************************************************************************//* *//* DON'T MODIFY main() function anyway! *//* *//******************************************************************************/#include <stdio.h>#include <stdlib.h>struct data{ long long int digitalValue; int countNum1;};void init(){}void solve(); /* write function solve() to process one case of the problem */int main(){ int i,t; init(); scanf("%d\n",&t); for (i=0;i<t;i++) { printf("case #%d:\n",i); solve(); } return 0;}//输入数据//计算每个整数按照64位二进制补码表示中1的位数//编写比较函数//调用qsort函数进行排序//输出int cmp(const void *a, const void *b){ struct data x; struct data y; x = *((struct data *)a); y = *((struct data *)b); if(y.countNum1 != x.countNum1) return y.countNum1 - x.countNum1; else { if(x.digitalValue > y.digitalValue) return 1; else return -1; }}void solve(){ long long int d; int count; int n; struct data record[100000]; int i,k; scanf("%d",&n); for(k=0;k < n;k++){ scanf("%lld",&(record[k].digitalValue)); d = 1; record[k].countNum1=0; for(i = 0;i<64;i++){ if( d & record[k].digitalValue) record[k].countNum1++; d = d<<1; } } qsort(record,n,sizeof(record[0]),cmp); for(i = 0; i < n-1;i++){ printf("%lld ",record[i].digitalValue); } printf("%lld\n",record[i].digitalValue);}
0 0
- 华师大 OJ 3036
- 华师大 OJ 2896
- 华师大 OJ 2947
- 华师大 OJ 3055
- 华师大 OJ 3059
- 华师大 OJ 2822
- 华师大 OJ 2893
- 华师大 OJ 3031
- 华师大 OJ 3053
- 华师大 OJ 1147
- 华师大 OJ 2966
- 华师大 OJ 3037
- 华师大 OJ 2876
- 华师大 OJ 3040
- 华师大 OJ 3024
- 华师大 OJ 2878
- 华师大 OJ 3023
- 华师大 OJ 3026
- Java学习-装箱和拆箱
- leetCode:493. Reverse Pairs
- iMX283 学习笔记----1. GPIO2_4(P2.4) 操作
- 设计模式C++实现(1)——工厂模式
- 各种算法的优缺点
- 华师大 OJ 3036
- Join内外连接基本操作
- 上机实验报告2:4&2:5
- 算法:字符串编码 (将连续的字符替换成“连续出现的个数+字符”)
- Java 知识点梳理
- (二)算法相关概念
- c++中的异常机制
- git关于远程分支的操作
- 请求重定向于转发的区别