第四周作业

4-0.求符合给定条件的整数集(15)

给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

输入格式: 输入在一行中给出A。

输出格式: 输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行未不能有多余空格。

输入样例:2

输出样例:

234 235 243 245 253 254

324 325 342 345 352 354

423 425 432 435 452 453

523 524 532 534 542 543

#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    int i,j,k;
    int cnt=0;
    i=a;
    while(i<=a+3){
        j=a;
        while(j<=a+3){
            k=a;
            while(k<=a+3){     //得到三个数字 
                if(i!=j){       //剔除重复数字 
                    if(i!=k){
                        if(j!=k){
                            cnt++;
                            printf("%d%d%d",i,j,k);
                            //printf("%d",i*100+j*10+k);
                            if(cnt == 6 ){
                                printf("\n");
                                cnt = 0;
                            }else{
                                printf(" ");
                            }
                        }
                    }
                } 
                k++;
            }
            j++;
        }
        i++;
    }
    return 0;
} 

水仙花数

水仙花数是指一个N位正整数(N>=3) ,它的每个位上的数字的N次幂之和等于它本身。例如:153=1^3+5^3+3^3,本题要求编写程序 计算所有N位水仙花数。

  • 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。
  • 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。
  • 输入样例: 3
  • 输出样例: 153 370 371
#include<stdio.h>

int main(){

    int n;
    scanf("%d",&n);
    int first = 1;
    int i=1;
    while(i<n){            //判断n是几位数,确定其范围
        first *=10;
        i++;              
    }

    i=first;
    while(i<first*10){    //遍历n位数
        int t=i;          //t用于存储i并分解i
        int sum=0;        //记录数n次幂累加的结果
        do{
            int d=t%10;   //取数的最低位
            t/=10;        //去掉最低位   
            int p=1;      //幂次结果
            int j=0;      //计数变量
            while(j<n){   //选出最低位的n次方
                p*=d;
                j++;
            }
            sum +=p;
        }while(t>0);
        if(sum == i){
            printf("%d\n",i);
        }
        i++;
    }
    return 0;

}   

九九乘法表

#include <stdio.h>
int main()
{
  int n;
  scanf("%d", &n);
  int i, j;
  while (i <= n)
  {
    j = 1;
    while (j <= i)
    {
      printf("%d*%d=%d", j, i, i * j);
      if (i * j < 10)
      {
        printf("   ");
      }
      else
      {
        printf("  ");
      }

      j++;
    }
    printf("\n");
    i++;
  }

  return 0;
}

统计素数

#include <stdio.h>
int main()
{
  int m, n;
  int i;
  int cnt = 0;
  int sum = 0;
  scanf("%d %d",&m,&n);
  if (m==1)
  {
    m=2;
  }
  
  for ( i = m; i <=n; i++)
  {
    int isprime = 1;
    int k;
    for (k=2 ;k<i-1;k++)
    {
      if (i%k==0)
      {
        isprime=0;
        break;
      } 
    }
    //判断i是否为素数
  
    if (isprime)
    {
      cnt++;
      sum+=i;
    }
  
  }
 printf("%d %d\n",cnt,sum); 
  return 0;
}

猜数游戏

#include <stdio.h>
int main()
{
  int number, n;
  int inp;
  int finished;
  int cnt;
  scanf("%d %d", &number, &n);
  do
  {
    scanf("%d", &inp);
    cnt++;
    if (inp < 0)
    {
      printf("Game over\n");
      finished = 1;
    }
    else if (inp > number)
    {
      printf("Too big\n");
    }
    else if (inp < number)
    {
      printf("Too small\n");
    }
    else
    {
      if (cnt == 1)
      {
        printf("Binggo!\n");
      }
      else if (cnt <= 3)
      {
        printf("Lucky You\n");
      }
      else
      {
        printf("Good Guess!");
      }
      finished = 1;
    }
    if (cnt == n)
    {
      if (!finished)
      {
        printf("Game Over\n");
        finished = 1;
      }
    }

  } while (!finished);

  return 0;
}

参考资料

程序设计入门——C语言\_浙江大学\_中国大学MOOC(慕课) (icourse163.org)

最后修改:2023 年 10 月 21 日
如果觉得我的文章对你有用,请随意赞赏