第几天

#include<stdio.h>

int main(){
	int y,i,d,j,sum=0;
	int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	while(scanf("%d/%d/%d",&y,&i,&d)!=EOF) {
		if(y%4==0&&y%100!=0||y%400==0){
			m[1]=29;
		}
		else{
			m[1]=28;
		}
		*第一次自己做没有注意这一部分,是闰年的时候就会被改成29,多组输入,下一次继续判断*
		for(j=0;j<i-1;j++){
			sum=m[j]+sum;
		}
		sum=sum+d;
		printf("%d\n",sum);
		sum=0;
	}
	return 0;
}

水仙花数

#include<stdio.h>
int main(){
	int m,n;
	int i;
	int a,b,c;
	int s[100]={0};
	while(scanf("%d%d",&m,&n)!=EOF){
		if(m>n){
			int t;
			t=m;
			m=n;
			n=t;
		}
		int j=0;
		for(i=m;i<=n;i++){
			a=i/100;
			b=i%100/10;      *注意*
			c=i%10;
			if(a*a*a+b*b*b+c*c*c==i){
				s[j]=i;
				j++;
			}
		}
		if(j==0){
			printf("no\n");
		} else{
			printf("%d",s[0]);
			for(i=1;i<j;i++){
				printf(" %d",s[i]);     *注意数组输出格式*
			}
			printf("\n");
		}
	}
	return 0;
}

三足鼎立
1.tan(a+b) = ( tan(a) + tan(b) ) / (1 – tan(a) * tan(b) )
2.tan( arctan(x) ) = x
arctan(1/s) = arctan(1/u)+arctan(1/v)
所以得1/s = tan( arctan(1/u)+arctan(1/v) ) = (tan(arctan(1/u)) + tan(arctan(1/v)))/(1-tan(arctan(1/u))tan(arctan(1/v))) = (1/u + 1/v) / (1 - 1/(uv))
所以解得 uv = 1 + us + vs
所以v
u-su-sv恒等于1

#include<stdio.h>
int main(){
    int t,m,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&m,&n);
        printf("1\n");
    }
    return 0;
}

输入一个年份 y,一个数字n,输出y后的第n个闰年

#include<stdio.h>

int main(){
	int t;
	int y,n;
	scanf("%d",&t);
	while(t--){
		int count=0;
		scanf("%d%d",&y,&n);
		while(count!=n){
			if(y%4==0&&y%100!=0||y%400==0){     *从y后开始判断每一年是否为闰年,直到coun=n跳出循环*
				count++;
			}
			y++;
		}
		printf("%d\n",y-1);         *当count=n时,y还加了1,所以输出y-1*
	}
	return 0;
}

偶数求和

#include<stdio.h>
int main(){
	int n,m,x;
	while(scanf("%d%d",&n,&m)!=EOF){
		x=2;
		int a,c=0;
		for(int i=0;i<n/m;i++){
			a=x+m-1;                             *对于前几项来说,平均值为x+m-1*
			if(c==0){
				printf("%d",a);
				c++;
			}                                                *输出格式 第一项前没有空格,其余都有*
			else{
			printf(" %d",a);
			}
			x=x+2*m;        *等差数列第一项的值*
		}
		if(n%m!=0){
			a=x+n%m-1;      *最后剩余几项的平均值*
			printf(" %d",a);
		}
       printf("\n");
	}
	return 0;
}

数字根

#include<stdio.h>
#include<string.h>
int main(){
	char n[1000];        *不一定为两位数,所以定义一个一维数组每个位置存储一个数*
	int a,sum;
	while(scanf("%s",n)){
		if(n[0]=='0'){
			break;
		}
		sum=0;
		for(int i=0;n[i]!='\0';i++){
		   sum=sum+n[i]-'0';                  *sum为各个位数的和*  *字符减字符 ASCII表  啊啊大概就是这意思*
		}
		while(sum>=10){
			a=0;
			while(sum!=0){
				a=a+sum%10;          *对每位上的数字求和,直到和<10*
				sum=sum/10;         
*例如:sum=123;a=0+123%10=0+3=3;sum=123/10=12;a=3+12%10=3+2=5;sum=12/10=1;a=5+1%10=5+1=6;sum=1/10=0;跳出循环,数字根即为6*
			}
			sum=a;
		}
			printf("%d\n",sum);
	}
	return 0;
}

Sample Input
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3

Sample Output
10

15

6

#include<stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
          int m,i,a,sum=0;  
          scanf("%d",&m);
          for(i=0;i<m;i++){
              scanf("%d",&a);
              sum=sum+a;
          }
          if(n!=0)
          printf("%d\n\n",sum);    *和与和之间输出一行空行*
          else
          printf("%d\n",sum);     *去掉这个变Presentation Error*   *n从n开始减到0,前几个数后有空行,最后一行数后没有空行*
    }
}

Sample Input
2
1 5
10 20

Sample Output
6
30

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

数列有序
Sample Input
3 3
1 2 4
0 0

Sample Output
1 2 3 4

#include<stdio.h>
int main(){
	int n,m;
	while(scanf("%d%d",&n,&m)&&(n||m)){     *多组输入,且都不为0*
		int a[101];
		int i,j=0;
		for(i=0;i<n;i++){
			scanf("%d",&a[i]);
		}
		for(j=0;j<n;j++){
			if(m<a[j]){                                      *找到要插入的位置*
				break;
			}
		}
		for(i=n-1;i>=j;i--){                        *从最后一位开始往后移一位*
			a[i+1]=a[i];
		}
		a[j]=m;
		printf("%d",a[0]);
		for(i=1;i<n+1;i++){
			printf(" %d",a[i]);                  *输出格式*
		}
		printf("\n");
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值