Problem 1007 - 做一名正气的西电人

简介: Description   一天,wm和zyf想比比谁比较正气,但正气这种东西无法量化难以比较,为此,他们想出了一个方法,两人各写一个数字,然后转化为二进制,谁的数字中二进制1多谁就比较正气! Input   输入包含多组数据,EOF结束。
Description

  一天,wm和zyf想比比谁比较正气,但正气这种东西无法量化难以比较,为此,他们想出了一个方法,两人各写一个数字,然后转化为二进制,谁的数字中二进制1多谁就比较正气!

Input
  输入包含多组数据,EOF结束。 
  每组数据包含两行,代表两个非负整数a,b(0<=a,b<10^100,不含前导0),a为wm写的数字,b为zyf写的数字。
Output
  每组数据输出一行,输出正气的西电人名字"wm"或"zyf",如果两人的数字中二进制1一样多就输出"neither"。

Sample Input
15
16
17
18
20
19
Sample Output
wm
neither
zyf
Hint
Source
2010.04内部测试赛(Author: Qinz)

#include <stdio.h>
#include <string.h>


int count(char a[])
{     
    int cur, pre;
    int i = 0, j = 0, count = 0;
    pre = 0;
    int len_a = strlen(a);
    while (j < len_a){
        for(i = j; i < len_a; ++i)
        {
            cur = a[i] - '0';
            a[i] = (pre * 10 + cur)/2 + '0';
            pre = cur%2;
        }
        if(pre == 1)
            count++;
        if(a[j] == '0')
            j++;
        pre = 0;
    }
    return count;
}


int main()
{
    char a[101], b[101], result[101]="";
    int counta, countb;
    while(gets(a) != NULL && gets(b) != NULL)
    {
        counta = count(a);
        countb = count(b);
        if(counta > countb)
            strcat(result, "wm\n");
        else if(counta < countb)
            strcat(result, "zyf\n");
        else
            strcat(result, "neither\n");
    }
    printf("%s", result);
    return 0;
}

#include <stdio.h>
int x, y;
char a[101];
int operate()
{
    int l, i, j, ret = 0;
    for (l = 0; a[l] && a[l] != '\n'; ++l)
        a[l] -= '0';
    for (i = 0, j = --l; i < j; ++i, --j) {
        a[i] ^= a[j];
        a[j] ^= a[i];
        a[i] ^= a[j];
    }
    while (l || a[0]) {
        for (ret += a[0] & 1, i = l, j = 0; i >= 0; --i) {
            j = j * 10 + a[i];
            a[i] = j >> 1;
            j &= 1;
        }
        while (l && !a[l])
            --l;
    }
    return ret;
}
int main()
{
    while (gets(a)) {
        x = operate(a);
        gets(a);
        y = operate(a);
        if (x == y)
            puts("neither");
        else
            if (x > y)
                puts("wm");
            else
                puts("zyf");
    }
    return 0;
}

#include<stdio.h>
#define MAXSIZE 100

void record(char c[],int *zero,int *sum);

int main()
{
    char a[MAXSIZE+1],b[MAXSIZE+1];
    int suma,sumb;
    int zeroa,zerob;

    while (scanf("%s%s",a,b)!=EOF)
    {
        for (zeroa=0,suma=0,zerob=0,sumb=0;a[zeroa]!='\0' || b[zerob]!='\0';)
        {
            record(a,&zeroa,&suma);
            record(b,&zerob,&sumb);
        }
        if (suma == sumb)
            printf("neither\n");
        else
            if (suma > sumb)
                printf("wm\n");
            else
                printf("zyf\n");
    }
    return 0;
}
void record(char c[],int *zero,int *sum)
{
    int i=*zero,x=0,t;

    while (c[i]!='\0')
        {
            t=c[i]-'0'+x*10;
            x=t%2;
            t/=2;
            c[i]=t+'0';
            i++;
        }
    if (1==x)
        (*sum)++;
    while (c[*zero]=='0')
        (*zero)++;
}

#include<stdio.h>
#include<string.h>
char s1[300],s2[300];
int num[300];
int cals(char s[])
{
    int len,i,x,sum=0;
    len=strlen(s);
    for(i=0;i<len;i++)
        num[i]=s[len-i-1]-'0';  //逆序存入int型数组
    while(len!=0)    //数组长度为0时跳出循环
    {
        for(i=len-1;i>0;i--)  //模拟转化过程
        {
            x=num[i]%2;
            num[i]/=2;
            num[i-1]+=10*x;
        }
        sum+=num[0]%2;  //计数
        num[0]/=2;
        for(i=len-1;num[i]==0&&i>=0;i--) len--;  //若高位为0则缩短数组长度,如120->60,长度就缩了1
    }
    return sum;
}
int main()
{
    int len1,len2,i;
    while(scanf("%s%s",s1,s2)!=EOF)
    {
        len1=cals(s1);
        len2=cals(s2);
        printf("%s\n",len1>len2?"wm":len1==len2?"neither":"zyf");  //比较长度后按要求输出
    }
    return 0;
}

目录
相关文章
|
1天前
|
云安全 数据采集 人工智能
古茗联名引爆全网,阿里云三层防护助力对抗黑产
阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
古茗联名引爆全网,阿里云三层防护助力对抗黑产
|
5天前
|
人工智能 中间件 API
AutoGen for .NET - 架构学习指南
《AutoGen for .NET 架构学习指南》系统解析微软多智能体框架,涵盖新旧双架构、核心设计、技术栈与实战路径,助你从入门到精通,构建分布式AI协同系统。
300 142
|
5天前
|
Kubernetes 算法 Go
Kubeflow-Katib-架构学习指南
本指南带你深入 Kubeflow 核心组件 Katib,一个 Kubernetes 原生的自动化机器学习系统。从架构解析、代码结构到技能清单与学习路径,助你由浅入深掌握超参数调优与神经架构搜索,实现从使用到贡献的进阶之旅。
279 139
|
2天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
297 0
|
2天前
|
传感器 人工智能 算法
数字孪生智慧水务系统,三维立体平台,沃思智能
智慧水务系统融合物联网、数字孪生与AI技术,实现供水全流程智能监测、预测性维护与动态优化。通过实时数据采集与三维建模,提升漏损控制、节能降耗与应急响应能力,推动水务管理从经验驱动迈向数据驱动,助力城市水资源精细化、可持续化管理。
257 142
|
1天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
本文介绍RAG(检索增强生成)技术,结合Spring AI与本地及云知识库实现学术分析AI应用,利用阿里云Qwen-Plus模型提升回答准确性与可信度。
174 90
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
|
17天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
1天前
|
机器学习/深度学习 人工智能 运维
智能照明稳压节能控制器,路灯节能稳压系统,沃思智能
智能照明调控柜集电力分配、远程控制与能耗管理于一体,支持自动调光、场景切换与云平台运维,广泛应用于市政、商业及工业领域,显著节能降耗,助力智慧城市建设。
178 137
kde
|
2天前
|
人工智能 关系型数据库 PostgreSQL
n8n Docker 部署手册
n8n是一款开源工作流自动化平台,支持低代码与可编程模式,集成400+服务节点,原生支持AI与API连接,可自托管部署,助力团队构建安全高效的自动化流程。
kde
213 3