01序列(P1001)
对于长度为6位的一个01串,每一位都可能是0或1,一共有64种可能。它的前几个是:
000000
000001
000010
000011
000100
请按从小到大的顺序输出这64种01串。
#include<bits/stdc++.h>
using namespace std;
int to_bin(int x){
int bin[10] = {
0};
int num = 0;
int ans = 0;
while(x > 0){
bin[num++] = x % 2;
x /=2;
}
//当前num为位数,逆序得到二进制数
for(int i = num-1;i>=0;i--){
ans = ans*10+bin[i];
}
return ans;
}
int main(){
printf("%06d\n",0);
for(int i =1;i<64;i++){
printf("%06d\n",to_bin(i));
}
}
日期
今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期,输出那一天是星期几。例如输入“5(回车)20(回车)”(5月20日),输出应为“Sunday”。
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,d;//月份和日期
scanf("%d",&m);
scanf("%d",&d);
int d_of_m[13] = {
0,31,29,31,30,31,30,31,31,30,31,31,30};
char week[7][20] = {
"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int nm = 4,nd=12,cnt=0;
while(nm< m || nd < d){
nd++;
cnt++;
if(nd == d_of_m[nm]+1){
nm++;
nd = 1;
}
}
cnt += 4;
int weekday = (cnt%7+7)%7;
printf("%s\n",week[weekday]);
return 0;
}
单链表
设节点定义如下
struct Node {
int Element; // 节点中的元素为整数类型
struct Node * Next; // 指向下一个节点
};
从键盘输入5个整数,将这些整数插入到一个链表中,并按从小到大次序排列,最后输出这些整数。
代码如下:
#include<bits/stdc++.h>
using namespace std;
struct node{