洛谷题单
分支结构
【入门2】分支结构 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
P5709 【深基2.习6】Apples Prologue / 苹果和虫子 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
int m,t,s = 0;
int n = 0;
scanf("%d %d %d",&m,&t,&s);
if(t == 0){
n = 0;
}else if (s >= m*t){
n = 0;
}else{
n = m - (s/t + (s%t != 0));
}
printf("%d",n);
return 0;
}
P5710 【深基3.例2】数的性质 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
int a,b,c,d;
if(x%2==0&&x>4&&x<=12){a=1;}else{a=0;}
if((x%2==0)||(x>4&&x<=12)){b=1;}else{b=0;}
if(((x%2==0)&&(x<=4||x>12))||((x%2!=0)&&(x>4&&x<=12))){c=1;}else{c=0;}
if((x%2!=0)&&(x<=4||x>12)){d=1;}else{d=0;}
printf("%d %d %d %d",a,b,c,d);
}
P5711 【深基3.例3】闰年判断 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main(){
int n,flag;
scanf("%d",&n);
if(n%4==0){
if(n%100==0&&n%400!=0){flag=0;}
else{flag=1;}
}
else{flag=0;}
printf("%d",flag);
}
P5712 【深基3.例4】Apples - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main(){
int x;
scanf("%d",&x);
if(x==0||x==1){printf("Today, I ate %d apple.",x);}
else
printf("Today, I ate %d apples.",x);
return 0;
}
P5713 【深基3.例5】洛谷团队系统 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int n,h;
scanf("%d",&n);
h=(5*n)<(3*n+11)?1:2;
switch(h){
case 1:printf("Local");break;
case 2:printf("Luogu");break;
}
return 0;
}
P5714 【深基3.例7】肥胖问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
double m,h;
scanf("%lf%lf",&m,&h);
double bmi=m/h/h;
if(bmi<18.5){printf("Underweight");}
else if(bmi>=18.5&&bmi<24){printf("Normal");}
else if(bmi>24){printf("%.6g\nOverweight",bmi);}
return 0;
}
P5715 【深基3.例8】三位数排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int a,b,c,t1,t3;
int t2=0;
scanf("%d%d%d",&a,&b,&c);
t1=a;
if(b>t1){t1=b;}if(c>t1){t1=c;}
t3=a;
if(b<t3){t3=b;}if(c<t3){t3=c;}
t2=(a+b+c)-t1-t3;
printf("%d %d %d",t3,t2,t1);
return 0;
}
P5716 【深基3.例9】月份天数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main(){
int y,m;
scanf("%d%d",&y,&m);
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if((y%4==0&&y%100!=0)||y%400==0){
day[2]=29;
}
printf("%d",day[m]);
return 0;
}
P1085 [NOIP2004 普及组] 不高兴的津津 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int a, b, c[8],i,max=0,d=0,counter=0;
for (i = 1; i <= 7; i++)
{
scanf("%d %d", &a, &b);
c[i] = a + b;
if (c[i] > 8)
{ counter++;
if (c[i] > max)
{max = c[i];
d=i;}
}
}
if (counter == 0)
printf("%d", 0);
else
printf("%d",d);
return 0;
}
P1909 [NOIP2016 普及组] 买铅笔 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int n, a1, a2, b1, b2, c1, c2, a, b, c, z;
scanf("%d", &n);
scanf("%d %d", &a1, &a2);
scanf("%d %d", &b1, &b2);
scanf("%d %d", &c1, &c2);
a = n / a1; a1 = n % a1 == 0 ? a : a + 1; a = a1 * a2;
b = n / b1; b1 = n % b1 == 0 ? b : b + 1; b = b1 * b2;
c = n / c1; c1 = n % c1 == 0 ? c : c + 1; c = c1 * c2;
z = a < b ? (a < c ? a : c) : (b < c ? b : c);
printf("%d\n", z);
return 0;
}
P5717 【深基3.习8】三角形分类 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
int a, b, c,t=0;
scanf("%d%d%d", &a, &b, &c);
//调整大小顺序
if (a < b) { t = a; a = b; b = t; }
if (a < c) { t = a; a = c; c = t; }
if (c > b) { t = c; c = b; b = t; }
//判断是否三角形
if ((b + c) <= a) { printf("Not triangle\n"); }
else
{
//判断什么三角形
if ((a * a) == (b * b + c * c)) { printf("Right triangle\n"); }
else if ((a * a) < (b * b + c * c)) { printf("Acute triangle\n"); }
else if ((a * a) > (b * b + c * c)) { printf("Obtuse triangle\n"); }
//判断边
if (b == c) { printf("Isosceles triangle\n"); }
if (a == b && a == c) { printf("Equilateral triangle\n"); }
}
return 0;
}
P1422 小玉家的电费 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
float n,w=0;
scanf("%f", &n);
if (n <= 150) { w = 0.4463 * n; }
else if (n > 150&&n<=400) { w = 0.4463 * 150+0.4663*(n-150); }
else if (n > 400) { w = 0.4463 * 150 + 0.4663 * (400 - 150)+0.5663*(n-400); }
printf("%.1f", w);
return 0;
}
P1424 小鱼的航程(改进版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
int x; unsigned long long n=0,t=0;
scanf("%d%llu", &x, &n);
for (int i = 1; i <= n; i++)
{
if (x != 6 && x != 7) { t+=250; }
if (x == 7) { x = 1; }
else{x++;}
}
printf("%llu", t);
return 0;
}
P1888 三角函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {return a;}
else {return gcd(b, a % b);}
}
int main()
{
int a, b, c, t = 0;
scanf("%d%d%d", &a, &b, &c);
//调整大小顺序
if (a < b) { t = a; a = b; b = t; }
if (a < c) { t = a; a = c; c = t; }
if (c > b) { t = c; c = b; b = t; }
//求sin—>c/a
t = gcd(a, c);
printf("%d/%d", (c / t) ,(a / t));
return 0;
}
P1046 [NOIP2005 普及组] 陶陶摘苹果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
int a[10],t,flag=0;
for (int i = 0; i < 10; i++) { scanf("%d", &a[i]); }
scanf("%d", &t); t += 30;
for (int i = 0; i < 10; i++)
{
if (t >= a[i]) { flag++; }
}
printf("%d", flag);
return 0;
}
P4414 [COCI2006-2007#2] ABC - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
int a[3], t = 0; char A, B, C;
scanf("%d%d%d\n",&a[0] ,&a[1], &a[2]);
if (a[0] > a[1]) { t = a[0]; a[0] = a[1]; a[1] = t; }
if (a[0] > a[2]) { t = a[0]; a[0] = a[2]; a[2] = t; }
if (a[1] > a[2]) { t = a[1]; a[1] = a[2]; a[2] = t; }
A = getchar();
B = getchar();
C = getchar();
printf("%d %d %d", a[A - 'A'], a[B - 'A'], a[C - 'A']);
return 0;
}
P1055 [NOIP2008 普及组] ISBN 号码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main() {
char a[14], mod[12] = "0123456789X";
gets(a);
int i, j = 1, t = 0;
for (i = 0; i < 12; i++)
{
if (a[i] == '-') continue;
t += (a[i] - '0') * j++;
}
if (mod[t % 11] == a[12]) printf("Right");
else {
a[12] = mod[t % 11];
puts(a);
}
return 0;
}
循环结构
【入门3】循环结构 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
P5718 【深基4.例2】找最小值 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main()
{
int a[200],n,min=10000000;
scanf("%d\n",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<min){
min=a[i];
}
}
printf("%d",min);
return 0;
}
P5719 【深基4.例3】分类平均 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main() {
int n, k;
float a1 = 0, a2 = 0, flag1 = 0, flag2 = 0;
scanf("%d%d", &n, &k);
for (int i = k; i <= n; i+=k)
{
a1 += i; flag1++;
}
a2 = ((1+n)*n/2)-a1;
flag2=n-flag1;
printf("%.1f %.1f", (a1 / flag1), (a2 / flag2));
return 0;
}
P5720 【深基4.例4】一尺之棰 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main() {
int a,n=0;
scanf("%d", &a);
while (a > 1)
{
n++;
a /= 2;
}
printf("%d", n+1);
return 0;
}
P5721 【深基4.例6】数字直角三角形 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <stdio.h>
int main() {
int n,sum=1;
scanf("%d", &n);
for (int i = n; i > 0; i--)
{
for (int j = 1; j<=i; j++)
{
if (sum < 10) { printf("%d%d", 0, sum); }
else { printf("%d", sum); }
sum++;
}
printf("\n");
}
return 0;
}
P1009 [NOIP1998 普及组] 阶乘之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int i,A[1005]={0},B[1005]={0},n,j;
scanf("%d", &n);
A[0]=B[0]=1;
for (i=2;i<=n;i++){
for (j=0;j<100;j++)
B[j]*=i;
for (j=0;j<100;j++)
if (B[j]>9){
B[j+1] += B[j]/10;
B[j]%=10;
}
for (j=0;j<100;j++){
A[j]+=B[j];
if (A[j]>9) {
A[j+1] += A[j]/10;
A[j]%=10;
}
}
}
for (i=100;i>=0&&A[i]==0;i--);
for (j=i;j>=0;j--) printf("%d", A[j]);
return 0;
}
P1980 [NOIP2013 普及组] 计数问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int n, x, b = 0, c = 0,flag=0;
scanf("%d%d", &n, &x);
for (int i = 1; i <= n; i++)
{
b = i;
while (b)
{
c = b % 10;
b = b / 10;
if (c == x) { flag++; }
}
}
printf("%d", flag);
return 0;
}
P1035 [NOIP2002 普及组] 级数求和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int k,flag = 0;
double S = 0.0;
scanf("%d", &k);
for (float i = 1;; i++)
{
S += (1.0 / i);
flag++;
if (S > k)break;
}
printf("%d", flag);
return 0;
}
P2669 [NOIP2015 普及组] 金币 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int a, b = 0, c = 1, i;
scanf("%d", &a);
for (i = 1; i <= a; i++)
{
a -= i, b += c * c, c++;
}
printf("%d", b + a * c);
return 0;
}
P5722 【深基4.例11】数列求和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int main()
{
int n, S = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
S += i;
}
printf("%d",S);
return 0;
}
P5723 【深基4.例13】质数口袋 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<stdio.h>
int n, x;
long long sum = 0;
int judge(int x)
{
for (int i = 2; i * i <= x; ++i)
{
if (x % i == 0) return 0;
}
return 1;
}
int main()
{
scanf("%d", &n);
if (n < 2)
{
printf("0\n");
return 0;
}
else if (n == 2)
{
printf("2\n1\n");
return 0;
}
for (int i = 2; i <= n; ++i)
{
if (i % 2 == 0 && i != 2) continue;
if (sum + i > n)
{
printf("%d\n", x);
return 0;
}
if (judge(i))
{
printf("%d\n", i);
sum += i;
x++;
}
}
return 0;
}