#include<bits/stdc++.h>
using namespace std;intmain(){int n, sum =0;
cin >> n;for(int i =1; i <= n;++i)
sum += i;
cout << sum;return0;}
2017:【例4.2】输出偶数
#include<stdio.h>intmain(){int n;//定义整型变量nscanf("%d",&n);//从标准输入读取一个整数n//for循环,从1遍历到nfor(int i =1; i <= n;++i){//如果i是偶数,就输出i和一个空格if(i %2==0)printf("%d ", i);}return0;}
2018:【例4.3】输出奇偶数之和
#include<stdio.h>intmain(){int n, sumOdd =0, sumEven =0;//定义整型变量n, sumOdd用来保存奇数和, sumEven用来保存偶数和scanf("%d",&n);//从标准输入读取一个整数n//for循环,从1遍历到nfor(int i =1; i <= n;++i){//如果i是奇数,就把i累加到sumOdd上if(i %2==1)
sumOdd += i;//否则,把i累加到sumEven上else
sumEven += i;}//输出偶数和和奇数和printf("%d %d\n", sumEven, sumOdd);return0;}
2019:【例4.4】求阶乘
#include<stdio.h>intmain(){longlong n, res =1;//定义长整型变量n和res,res用来保存阶乘结果,初始化为1scanf("%lld",&n);//从标准输入读取一个长整数n//for循环,从1乘到nfor(int i =1; i <= n;++i)
res *= i;//计算阶乘,每次循环计算i的乘积printf("%lld\n", res);//输出阶乘结果return0;}
1059:求平均年龄
#include<stdio.h>intmain(){int n, s =0, a;//定义整型变量n, s用来保存加和,初始化为0,a用来保存输入的数字scanf("%d",&n);//从标准输入读取一个整数n//for循环,进行n次for(int i =0; i < n;++i){scanf("%d",&a);//每次循环都从标准输入读取一个整数a
s += a;//把a累加到s上}//输出s除以n的结果,也就是平均值,保留两位小数printf("%.2f\n",(double)s / n);return0;}
1060:均值
#include<stdio.h>intmain(){double s =0, a;//定义双精度浮点数s和a,s用来保存加和,初始化为0,a用来保存输入的数字int n;//定义整型变量nscanf("%d",&n);//从标准输入读取一个整数n//for循环,进行n次for(int i =0; i < n;++i){scanf("%lf",&a);//每次循环都从标准输入读取一个双精度浮点数a
s += a;//把a累加到s上}//输出s除以n的结果,也就是平均值,保留四位小数printf("%.4f\n", s / n);return0;}
1061:求整数的和与均值
#include<stdio.h>intmain(){int n, s =0, a;//定义整型变量n, s用来保存加和,初始化为0,a用来保存输入的数字scanf("%d",&n);//从标准输入读取一个整数n//for循环,进行n次for(int i =0; i < n;++i){scanf("%d",&a);//每次循环都从标准输入读取一个整数a
s += a;//把a累加到s上}//输出s和s除以n的结果,也就是和和平均值,保留五位小数printf("%d %.5f\n", s,(double)s / n);return0;}
1062:最高的分数
#include<stdio.h>intmain(){int n, a, mx =0;// 定义整型变量n,a和mx。其中,mx用来保存最大值,初始化为0,a用来保存输入的数字scanf("%d",&n);// 从标准输入读取一个整数n// for循环,进行n次for(int i =0; i < n;++i){scanf("%d",&a);// 每次循环都从标准输入读取一个整数aif(a > mx)// 如果a大于mx
mx = a;// 则更新mx为a的值}printf("%d\n", mx);// 输出最大值mxreturn0;}
1063:最大跨度值
#include<stdio.h>#include<limits.h>intmain(){int n, a;int mn = INT_MAX;//定义整型变量mn用来保存最小值,初值设为最大整数int mx = INT_MIN;//定义整型变量mx用来保存最大值,初值设为最小整数scanf("%d",&n);//从标准输入读取一个整数n//for循环,进行n次for(int i =0; i < n;++i){scanf("%d",&a);//每次循环都从标准输入读取一个整数aif(a < mn)//如果a小于mn
mn = a;//则更新mn为a的值if(a > mx)//如果a大于mx
mx = a;//则更新mx为a的值}//输出最大跨度值,为最大值减最小值printf("%d\n", mx - mn);return0;}
#include<stdio.h>intmain(){int m, n, s =0;//定义整数变量m、n和s,其中s用来保存奇数之和scanf("%d %d",&m,&n);//从标准输入读取整数m和nfor(int i = m; i <= n;++i)//从m循环到n(包括m和n){if(i %2==1)//如果i是奇数
s += i;//s中增加i}printf("%d\n", s);//输出s,即m到n之间所有奇数的和return0;}
1066:满足条件的数累加
#include<stdio.h>intmain(){int m, n, s =0;//定义整数变量m、n和s,其中s用来保存能被17整除的数的和scanf("%d %d",&m,&n);//从标准输入读取整数m和nfor(int i = m; i <= n;++i)//从m循环到n(包括m和n){if(i %17==0)//如果i能被17整除
s += i;//s中增加i}printf("%d\n", s);//输出s,即m到n之间所有能被17整除的数的和return0;}
1067:整数的个数
#include<stdio.h>intmain(){int k, a, s1 =0, s5 =0, s10 =0;//s1,s5,s10分别初始化为0,用以保存1,5,10的个数scanf("%d",&k);//从标准输入读取整数kfor(int i =0; i < k;++i)//进行k次循环{scanf("%d",&a);//每次循环都从标准输入读取一个整数aif(a ==1)//如果a为1
s1++;//s1增加1if(a ==5)//如果a为5
s5++;//s5增加1if(a ==10)//如果a为10
s10++;//s10增加1}printf("%d\n", s1);//输出1的个数printf("%d\n", s5);//输出5的个数printf("%d\n", s10);//输出10的个数return0;}
1068:与指定数字相同的数的个数
#include<stdio.h>intmain(){int n, m, a, ct =0;//定义四个整数n、m、a和ct,其中a用来保存输入的数字,ct用来保存数字的个数,初始化为0scanf("%d %d",&n,&m);//从标准输入读取整数n和mfor(int i =0; i < n;++i)//进行n次循环{scanf("%d",&a);//每次循环都从标准输入读取一个整数aif(a == m)//如果a等于m
ct++;//ct增加1}printf("%d\n", ct);//输出等于m的数字的个数return0;}
1069:乘方计算
#include<stdio.h>intmain(){int a, n, r =1;//定义三个整数a、n和r,其中a是底数,n是指数,r是结果,初始化为1scanf("%d %d",&a,&n);//从标准输入读取整数a和nfor(int i =0; i < n;++i)//进行n次循环
r *= a;//每次循环都将r乘以aprintf("%d\n", r);//输出r,即a的n次幂return0;}
1070:人口增长
#include<stdio.h>intmain(){int n;// 整数n,表示增长的次数double x;// 双精度浮点数x,表示原始值scanf("%lf %d",&x,&n);// 从标准输入读取浮点数x和整数nfor(int i =0; i < n;++i)// 进行n次循环{
x *=1+0.001;// 每次循环都将x乘以1.001,即让x增长0.1%}printf("%.4lf\n", x);// 输出x,即经过n次增长0.1%后的值,保留4位小数return0;}
1071:菲波那契数
#include<stdio.h>intmain(){int k, n2 =1, n1 =1, t;//定义四个整数k、n2、n1和t,其中n2和n1分别表示当前求出的倒数第二项和最后一项,初始值都为1scanf("%d",&k);//从标准输入读取整数kif(k <=2)//如果k小于等于2printf("%d\n",1);//直接输出1else{for(int i =3; i <= k;++i)//从3开始循环到k{
t = n1 + n2;//计算新的一项
n2 = n1;//更新倒数第二项
n1 = t;//更新最后一项}printf("%d\n", n1);//输出当前求出的最后一项}return0;}
1072:鸡尾酒疗法
#include<stdio.h>intmain(){int n, t, e;//n:疗法总数 t:病例总数 e:疗效有效病例数scanf("%d",&n);//从标准输入读取整数nscanf("%d %d",&t,&e);//从标准输入读取整数t和edouble x =(double)e / t, y;//x:鸡尾酒疗法治愈率 y:其它疗法治愈率for(int i =1; i < n;++i)//输入n-1组数据{scanf("%d %d",&t,&e);//输入某疗法的病例总数及疗效有效病例数
y =(double)e / t;//计算该疗法的治愈率if(y - x >0.05)printf("better\n");//如果该疗法的治愈率比鸡尾酒疗法高0.05以上,输出"better"elseif(x - y >0.05)printf("worse\n");//如果该疗法的治愈率比鸡尾酒疗法低0.05以上,输出"worse"elseprintf("same\n");//如果两疗法的治愈率差距在0.05以内,输出"same"}return0;}
1073:救援
#include<stdio.h>#include<math.h>intmain(){int n;// n:坐标点的数量double x, y, p, time =0;// x,y:坐标点的横纵坐标 p:在该坐标点停留的时间 time:通过所有坐标点需要的总时间scanf("%d",&n);//从标准输入读取整数nfor(int i =1; i<=n;++i){scanf("%lf %lf %lf",&x,&y,&p);//读取坐标点的横纵坐标及在该坐标点停留的时间
time +=sqrt(x*x + y*y)/50*2+ p *1.5;//计算通过该坐标点需要的时间并累加到总时间}printf("%d\n",(int)ceil(time));//输出通过所有坐标点需要的总时间,向上取整return0;}
1074:津津的储蓄计划
#include<stdio.h>intmain(){int m =0, s =0, b, t;//m:津津手中的钱 s:存的钱, b:某个月的预算for(int i =1; i <=12;++i){scanf("%d",&b);//读取某个月的预算if(m +300>= b)//如果本月能用的钱大于等于预算{
t = m +300- b;//t:预计本月末剩余的钱
m = t %100;//存钱后,手中剩余的钱
s += t - m;//存钱数,为t中包含的整百数,即 t - t % 100}else//如果本月能用的钱小于预算{printf("%d\n",-i);//输出负数表示第几个月不够用return0;}}printf("%.0f\n", s*1.2+ m);//输出一年后的存款+利息+手里的钱,四舍五入到整数return0;}
1075:药房管理
#include<stdio.h>intmain(){int m, n, a, f =0;//m:药品总数 n:人数 a:每个人取药数量 f:没取上药的人数 scanf("%d %d",&m,&n);//读取药品总数和人数int r = m;//r:剩余的药品数量 for(int i =0; i < n;++i){scanf("%d",&a);//读取一个人取药的数量if(r < a)//如果剩余的药品少于要取的药的数量
f++;//没取上药人数增加else
r -= a;//药品数量减少}printf("%d\n", f);//输出没有取上药的人数return0;}
1076:正常血压
#include<stdio.h>intmain(){int n, h, l, c =0, cm =0;//n:血压数据个数 h:收缩压,l:舒张压 c:血压连续正常的次数 cm:血压连续正常的最大次数scanf("%d",&n);//读取血压数据个数for(int i =0; i < n;++i){scanf("%d %d",&h,&l);//读取一组高低压数据if(h >=90&& h <=140&& l >=60&& l <=90)//判断这一组高低压是否正常{
c++;//如果满足条件,则正常血压次数计数if(c > cm)
cm = c;//记录最大连续正常血压次数}else//如果不满足条件,则正常血压次数置为0
c =0;}printf("%d\n", cm);//输出最长连续正常血压次数return0;}
1077:统计满足条件的4位数
#include<stdio.h>intmain(){int n, sum =0, d1, d2, d3, d4;//n:四位数个数 sum:满足条件的四位数个数 d1-d4:四位数各个位置的数字scanf("%d",&n);//读取四位数个数for(int i =0; i < n;++i){int num;scanf("%d",&num);//读取一个四位数
d1 = num %10;//个位
d2 = num /10%10;//十位
d3 = num /100%10;//百位
d4 = num /1000;//千位if(d1 - d2 - d3 - d4 >0)//如果个位数字减去其它每一位数字后结果大于0
sum +=1;//满足条件的四位数个数加1}printf("%d\n", sum);//输出满足条件的四位数个数return0;}
1078:求分数序列和
#include<stdio.h>intmain(){double s =0, q =2, p =1, t;//s:斐波那契数列的和,q:斐波那契数列的当前项,p:斐波那契数列的前一项,t:暂存变量int n;//n:需要计算的斐波那契数列的项数scanf("%d",&n);//读取需要计算的斐波那契数列的项数for(int i =0; i < n;++i){
s += q / p;//计算斐波那契数列的和
t = q;//暂存当前项
q = q + p;//计算下一项
p = t;//更新前一项}printf("%.4f\n", s);//输出斐波那契数列的和,保留四位小数return0;}
1079:计算分数加减表达式的值
#include<stdio.h>intmain(){double s =0;//s:交错级数的和int n, sign =1;//n:需要计算的交错级数的项数, sign:每项的符号,初始为1scanf("%d",&n);//读取需要计算的交错级数的项数for(int i =1; i <= n;++i)//i:分母{
s +=(double)sign *1/ i;//每一项:符号乘以分数,分数分子是1,分母是i。要先转为浮点型后再参与计算,以得到小数结果。
sign =-sign;//交错标志位翻转}printf("%.4f\n", s);//输出交错级数的和,保留四位小数return0;}
1080:余数相同问题
#include<stdio.h>intmain(){int x, a, b, c;//x:我们要找的数,a、b、c:输入的三个数scanf("%d %d %d",&a,&b,&c);//从标准输入读取a、b、cfor(x =2; x <=1000000;++x)//在2到1000000之间寻找满足条件的x{if(a%x == b%x && b%x == c%x)//如果a、b、c除以x的余数相等{printf("%d\n", x);//输出满足条件的xbreak;//找到一个就可以,所以找到后就跳出循环}}return0;}
1081:分苹果
#include<stdio.h>intmain(){int n, s =0;//n:需要计算的整数的个数, s:整数的和scanf("%d",&n);//从标准输入读取需要计算的整数的个数for(int i =1; i <= n;++i)//从1到n的所有整数{
s += i;//计算整数的和}printf("%d\n", s);//输出整数的和return0;}
1082:求小数的某一位
#include<stdio.h>intmain(){int a, b, n, d;//a、b:输入的两个整数,n:需要求的小数部分的位数,d:计算得到的第n位的数字scanf("%d %d %d",&a,&b,&n);//从标准输入读取a、b、nint r = a % b;//r:初始的余数for(int i =1; i <= n;++i)//执行n次操作{
r *=10;//余数乘以10
d = r / b;//计算商,即第i位的数字
r %= b;//计算新的余数}printf("%d\n", d);//输出第n位的数字return0;}
1083:计算星期几
#include<stdio.h>intmain(){int a, b, s =1;//a、b:输入的两个整数,s:计算的结果scanf("%d %d",&a,&b);//从标准输入读取a、b
a %=7;//使a的值为a % 7for(int i =0; i < b;++i)//执行b次操作
s =(s * a)%7;//计算s的值switch(s)//根据s的值输出对应的星期几{case0:printf("Sunday\n");break;case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;}return0;}
1084:幂的末尾
#include<stdio.h>intmain(){int a, b, s =1;//a、b:输入的两个整数,s:计算的结果scanf("%d %d",&a,&b);//从标准输入读取a、bfor(int i =1; i <= b;++i)//执行b次操作
s =(s * a)%1000;//计算s的值if(s <10)//如果s小于10,输出两个前导零printf("00");elseif(s <100)//如果s小于100,输出一个前导零printf("0");printf("%d", s);//输出s的值return0;}