第一周 周报

硬币 叼炸天

在桌面上有一排硬币,共N枚,每一枚硬币均为正面朝上。现在要把所有的硬币翻转成反面朝上,规则是每次可翻转任意N−1枚硬币(正面向上的被翻转为反面向上,反之亦然)。求一个最短的操作序列(将每次翻转N-1枚硬币成为一次操作)。
输入格式
一个自然数N(N为不大于100的偶数)。
输出格式
第一行包含一个整数S,表示最少需要的操作次数。接下来的S行每行分别表示每次操作后桌上硬币的状态(一行包含N个整数(0或1),表示每个硬币的状态:0――正面向上,和1――反面向上,不允许出现多余空格)。
对于有多种操作方案的情况,则只需字典序最小输出一种。
输入输出样例
输入 #1
4
输出 #1
4
0111
1100
0001
1111

/*                */
#include<stdio.h>
int main()
{
   int t,i,n,j,a[100]; 
   scanf("%d",&n);
   for(i=1;i<=n;i++)
   a[i]=0;   // 刚开始都是正面向上
   printf("%d\n",n); 
   for(i=1;i<=n;i++)
     {
	 for(j=1;j<=n;j++)//逐位翻转,翻转不是本位的其他位;翻转N次;;;;;;;啊哈
	   {
	     if(i!=j)
		 a[j]=1-a[j]; 
       }
       for(t=1;t<=n;t++)
		 printf("%d",a[t]);
		 if(i<=n-1)
		 printf("\n");
	} 	 
     return 0; 
} 

找 数 字(good)

现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。
输入格式
第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。
输出格式
第k个最小整数的值;若无解,则输出“NO RESULT”。
输入输出样例
输入 #1
10 3
1 3 3 7 2 5 1 2 4 6

输出 #1
3

说明/提示
n≤10000

/* */

#include<stdio.h>
int main()
{
	int n,t,i,j,a[10001],k,m; 
	scanf("%d %d",&n,&t);
	for(i=1;i<=n;i++)
	scanf("%d",&a[i]);
	for(i=1;i<n;i++)
	  for(j=i+1;j<=n;j++) 
	{
		if(a[i]==a[j])
		{
			for(k=j;k<=n-1;k++)
			a[k]=a[k+1];
			n--;
			j--; 
		} 
	} 
	for(i=1;i<n;i++)
	  for(j=i+1;j<=n;j++)
	  {
	  	if(a[i]>a[j])
		  {
		   	  m=a[j];#include<stdio.h>

超级玛丽(wdtmad)

#include<stdio.h>
int main() {
    printf(
    "                ********\n"
    "               ************\n"
    "               ####....#.\n"
    "             #..###.....##....\n"
    "             ###.......######              ###            ###\n"
    "                ...........               #...#          #...#\n"
    "               ##*#######                 #.#.#          #.#.#\n"
    "            ####*******######             #.#.#          #.#.#\n"
    "           ...#***.****.*###....          #...#          #...#\n"
    "           ....**********##.....           ###            ###\n"
    "           ....****    *****....\n"
    "             ####        ####\n"
    "           ######        ######\n"
    "##############################################################\n"
    "#...#......#.##...#......#.##...#......#.##------------------#\n"
    "###########################################------------------#\n"
    "#..#....#....##..#....#....##..#....#....#####################\n"
    "##########################################    #----------#\n"
    "#.....#......##.....#......##.....#......#    #----------#\n"
    "##########################################    #----------#\n"
    "#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#\n"
    "##########################################    ############\n"
    );
    return 0;
}:

菜单不行的大数相加

#include<stdio.h>
#include<string.h> 
int main()
{
    char a[100],b[100];
    int i,j=0,m,k,n;
	 gets(a);
	 gets(b);
	 m=strlen(a);
	 n=strlen(b);
	 k=(m>n)?m:n;
	 for(i=0;i<k;i++)
	 a[k-i]=a[m-1-i];
	 for(i=0;i<=k-m;i++)
	 a[i]='0'; 
	 for(i=0;i<k;i++)
	 b[k-i]=b[n-1-i];
	 for(i=0;i<=k-n;i++)
	 b[i]='0';
	 for(i=0;i<k;i++) 
	  {
	  j=(a[k-i]+b[k-i]-96+j);
	  a[k-i]=j%10+48;
	  j=j/10;
	  }
	  if(a[0]=='0')
	  printf("%s\n",a+1);
	  else
	  printf("%s\n",a); 
     return 0; 
} 







发布了8 篇原创文章 · 获赞 1 · 访问量 666

猜你喜欢

转载自blog.csdn.net/WOF_Spark/article/details/103317024