1.阶乘
输入n,
-
求y1=1!+3!+...m!(m是小于等于n的最大奇数)
y2=2!+4!+...p!(p是小于等于n的最大偶数)。输入:
每组输入包括1个整数:n
输出:
可能有多组测试数据,对于每组数据,输出题目要求的y1和y2
样例输入:
4
样例输出:
7 26
#include<stdio.h> void main(){ long long int n; long long int y1,y2; long long int i,j; long long int a=1; //代表每一项 while(scanf("%lld",&n) != EOF){ y1=0; y2=0; a=1; for(i=1;i<=n;i++){ a*=i; if(i%2==0){ y2+=a; }else{ y1+=a; } } printf("%lld %lld\n",y1,y2); } }
2,对称矩阵-
题目描述:
输入一个N维矩阵,判断是否对称。
输入:
-
输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。
接下来的N行,每行包括N个数,表示N*N矩阵的元素。
-
输出:
-
可能有多组测试数据,对于每组数据,
输出"Yes!”表示矩阵为对称矩阵。
输出"No!”表示矩阵不是对称矩阵。样例输入:
-
4 16 19 16 6 19 16 14 5 16 14 16 3 6 5 3 16 2 1 2 3 4
-
样例输出:
-
Yes! No!
#include<stdio.h> int main(){ int n; while(scanf("%d",&n) != EOF){ int tag=1; int matrix[100][100]; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%d",&matrix[i][j]); if(i>j){ if(matrix[i][j] != matrix[j][i]){ tag=0; } } } } if(tag){ printf("Yes!\n"); }else{ printf("No!\n"); } } return 0; }
3,遍历链表
-
题目描述:
建立一个升序链表并遍历输出。
输入:
输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。
输出:
可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。
样例输入:
-
4 3 5 7 9
-
样例输出:
-
3 5 7 9
#include<stdio.h> #include<malloc.h> typedef struct Node{ int data; struct Node *next; }Node; int main(){ int n,i; int input; Node *head,*tail,*p,*q; while(scanf("%d",&n)!=EOF){ //建立头结点 head =(Node*)malloc(sizeof(Node)); head->next=NULL; tail=head; for(i=1;i<=n;i++){ scanf("%d",&input); p =(Node*)malloc(sizeof(Node)); p->data=input; tail->next=p; tail=p; } tail->next=NULL; p=head->next; while(p != NULL){ q=p->next; while(q != NULL){ if(p->data > q->data){ int temp = p->data; p->data=q->data; q->data=temp; } q=q->next; } p=p->next; } p=head->next; while(p != NULL){ if(p->next == NULL){ printf("%d\n",p->data); }else{ printf("%d ",p->data); } p=p->next; } /* for(i=1;i<=n;i++){ if(i==n){ printf("%d\n",p->data); }else{ printf("%d ",p->data); p=p->next; } } */ free(p); free(head); } return 0; }
-