day1 hdoj 1089-1096题解

首先步入ACM的学习,不得不强烈推荐一套视频

https://space.bilibili.com/3071253#!

这位up主的视频很符合我这种

没学过c++,c语言数组还不很懂,hdoj按顺序刷的想骂人的菜鸡

首先基本输入输出格式 即1089-1096题

下面给出代码,原题请自己搜索

1089

#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)
    printf("%d\n",a+b);
      return 0;
}

这是最基本的a+b问题

唯一巧妙的地方是

    while(scanf("%d%d",&a,&b)!=EOF)

EOF 为 end of file

通俗的讲,这段代码的含义即

可以一直输入a和b的值不会停止

如果是一般的

scanf("%d%d",&a,&b);

计算一次a+b的值后程序就会终止

1090

#include<stdio.h>
int main()
{
    int a,b,n;
    scanf("%d",&n);
        while(n>0)
    {
        n--;
        scanf("%d%d",&a,&b);
        printf("%d\n",a+b);
    }

    return 0;
}

这道题的特别之处是你可以先输入一个数n,用来控制可以输入的组数

此处特征代码为

while(n>0)
    {
        n--;
   }

请根据视频自行理解

1091

#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)
    {
        if(a==0&&b==0) break;
        printf("%d\n",a+b);
    }

    return 0;
}

此题特殊之处为

如果输入0,程序终止

代码中break以为跳出while循环到return 0;  即程序终止

1092

#include<stdio.h>
int main()
{
    int a,n;
    while(scanf("%d",&n)!=EOF)
    {
        if (n==0)break;int sum=0;         //特别注意sum赋值0的位置
        while(n>0)
            {n--;
            scanf("%d",&a);
            sum+=a;
            }
        printf("%d\n",sum);
    }
    return 0;
}

此题特殊之处为

规定了每组输入数字的个数

与1090题原理相同

1093

#include<stdio.h>
int main()
{
    int a,n,i;
    scanf("%d",&i);
    while(i>0)
    {
        i--;
    scanf("%d",&n);
    {
        if(n==0) break;
        int sum=0;
        while(n>0)
            {n--;
            scanf("%d",&a);
            sum+=a;
            }
        printf("%d\n",sum);
    }
    }
    return 0;
}

1090和1092综合

既规定组数,又规定每组中数字的个数

用两次while即可

1094

#include<stdio.h>
int main()
{
    int a,n;
    while(scanf("%d",&n)!=EOF)
    {
        int sum=0;
        while(n--){
        scanf("%d",&a);
        sum+=a;
        }
        printf("%d\n",sum);
    }
    return 0;
}

仅给出AC代码

1095

#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)!=EOF)
    printf("%d\n\n",a+b);
    return 0;
}

隔一行输出

同样仅给出AC代码

1096

#include<stdio.h>
int main()
{
    int n,i,a;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&i);
        int sum=0;
        while(i--)
        {
            scanf("%d",&a);
            sum+=a;
        }
        if(n>0)
        printf("%d\n\n",sum);
        else
        printf("%d\n",sum);
    }

    return 0;
}

以上综合

这里需要注意,第一次直接打出printf("%d\n\n",sum);时出现PE

可能是以\n\n作为最后结尾格式错误

如不确定情况下,建议使用1096的输出代码

时间: 2024-08-30 14:57:58

day1 hdoj 1089-1096题解的相关文章

hdoj 1089(费马小定理)

题目大意:方程f(x)=5*x^13+13*x^5+k*a*x:输入任意一个数k,是否存在一个数a,对任意x都能使得f(x)能被65整出. 现假设存在这个数a ,因为对于任意x方程都成立 所以,当x=1时f(x)=18+ka 又因为f(x)能被65整出,故设n为整数 可得,f(x)=n*65; 即:18+ka=n*65; 因为n为整数,若要方程成立 则问题转化为, 对于给定范围的a只需要验证, 是否存在一个a使得(18+k*a)%65==0 所以容易解得 注意,这里有童鞋不理解为毛a只需到65即

NOIP2011 Day1,Day2 T1 T2 题解

D1T1:铺地毯(carpet.cpp/c/pas) [题目分析] 分析题目我们可以发现,本题是一个比较简单的枚举,我们可以从后向前扫描,找到的第一个覆盖这个点的地毯,这个地毯的编号就是最后一个覆盖这个点的地毯的编号. [程序源代码] //carpet.cpp by JerryXie #include<cstdio> using namespace std; struct carpet { int a,b,g,k; }; carpet c[10001]; int main() { freope

HDOJ

第一篇 1001 这个就不用说了吧1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键1011 1012 简单题1013 简单题(有个小陷阱)1014 简单题1015 可以看作搜索题吧1016 经典的搜索1017 简单数学题1018 简单数学题1019 简单数学题1020 简单的字符串处理1021 找规律的数学

hdoj分类(转)

注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 1012 简单题 1013 简单题(有个小陷阱) 1014 简单题 1015 可以看作搜索题吧 1016 经典的搜索 1017 简单数学题 1018 简单数学题 1019 简单数学题

acm steps

1.1 根蒂根基输入输出:LCY的 A+B 8题 (1089~1096) 1.2 C说话根蒂根基:根蒂根基入门题 (2104,2088,1076,2095,1061,1170,3361,1197) 1.3 排序,贪婪: 1052 很恶心的一道贪婪题 3177 我推荐的这题貌似卡了不少人,遵守差值排序 (1236,1084,2093,2111,2187,1157) 2.1 简单数学题:GCD和素数生成占了很大一项目组 1071 积分题 1717 这题斗劲麻烦 (1108,2138,2504,121

HDU 题目分类

基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093.1094.1095.1096.1097.1098.1106.1108.1157.1163.1164.1170.1194.1196.1197.1201.1202.1205.1219.1234.1235.1236.1248.1

mysql select in 怎么优化

2017年7月10日 22:36:54 星期一 原理: 把select where in 变换成 "where = " 或者 "where between and " 这样的子句, 然后用union all 拼接, 一次查询 环境: php7, summerPHP框架, 代码部署在杭州(华东)阿里云的机器上, mysql数据库部署在青岛(华北), 表的记录数量为8200+, id是主键,hanzi不在索引中 每次id的生成都是随机数, 所以数据比较分散 结果: un

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116

bzoj 2241: [SDOI2011]打地鼠(暴搜+减枝)

2241: [SDOI2011]打地鼠 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 1098  Solved: 691 [Submit][Status][Discuss] Description 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其头部,砸到的地鼠越多分数也就越高. 游戏中的锤子每次只能打一只地鼠,如果多只地鼠同时探出头,玩家只能通过多次挥舞锤子的方