浅浅刷一下题【c语言】

水仙花数是一个n位数,它的每个位的n次方之和等于本身

int main()
{
	int i = 0;
	for (i = 0; i <= 1000000; i++)
	{
		//判断i是否为水仙花数
		//1. 计算出i是几位数 - n
		int n = 1;
		int tmp = i;
		while (tmp>9)//153
		{
			tmp /= 10;
			n++;//1 2 3
		}
		//2. 计算i的十进制的每一位的n次方之和,判断是否等于i本身
		tmp = i;
		int sum = 0;
		while (tmp)
		{
			sum += (int)pow(tmp % 10, n);
			tmp /= 10;
		}
		if (sum == i)
		{
			printf("%d ", i);
		}
	}

	return 0;

我们假设改数位153
思路:首先我们得求出有几位数
其次将153 得3^3 + 5^3 +1 ^3相加


题目:**求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,


题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。

#include<stdio.h>
int main()
{
	int money = 0;
	scanf("%d", &money);//20
	int total = 0;
	int epmty = 0;
	total += money;
	epmty = money;
	while (epmty >=2)
	{
		
		total += epmty / 2 + epmty % 2;
		epmty = epmty / 2;
	}
	printf("%d", total);
	return 0;
}

在这里插入图片描述

题目:https://www.nowcoder.com/practice/f5a29bacfc514e5a935723857e1245e4?tpId=107&&tqId=33387&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

int main( )
{
    int n =0 ;
    scanf("%d",&n);
    //int arr[n][n];
    int arr [10][10];
  int i =0 ;
  for ( i= 0; i< n ; i ++)
  {
      int j =0 ;
      for ( j =0 ; j<n ; j ++)
      {
          scanf( "%d",&arr[i][j]);
      }
  }
     int flag =1 ;//上三角矩阵
      for ( i =0 ; i<n; i ++)
      {
          int j =0 ;
          for (j =0 ;j<i ; j ++)
          {
              if( arr[i][j]!=0)
              {
                  flag =0 ;
                  goto end ;
              }
          }
      }
      end :
      if (flag ==1  )
      {
 printf("YES");
      }
      else 
      printf( "NO");
             
    return 0 ;
}

题目:https://www.nowcoder.com/practice/2f058b1e89ae43f7ab650c0fd0b71fa8?tpId=107&&tqId=33386&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

int main()
{
    int n =0 ;
    int m =0 ;
    scanf("%d %d",&n,&m);
    int arr1[n][m];
    int arr2[n][m];
  int i =0;
  int j =0 ;
  for ( i =0 ;i <n ; i++)
  {
      for ( j =0 ; j <m ; j++)
      {
          scanf ("%d",&arr1[i][j]);
      }
  }

    for ( i =0 ;i <n ; i++)
  {
      for ( j =0 ; j <m ; j++)
      {
          scanf ("%d",&arr2[i][j]);
      }
  }
    int  flag = 1;
  for ( i=0 ;i <n; i ++)
  {
      for ( j=0 ; j< m ; j++)
      {
          if( arr1[i][j]!=arr2[i][j])
          {
              flag =0;
              goto end;
          }
      }
  }
  end : 
  if(flag==1)
  {
      printf("Yes");
  }
  else 
  printf( "No");
    return 0 ;
}

题目:题目:
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。

 void move(int arr[], int sz)
{
	 int left = 0;
	 int right = sz - 1;
	 //找偶数
	 while (left < right)
	 {
		 while (left < right && arr[left] % 2 == 1)
		 {
			 left++;
		 }
		 //找奇数 
		 while (left < right && arr[right] % 2 == 0)
		 {
			 right--;
		 }
		 if (left < right)
		 {
			 int tmp = arr[left];
			 arr[left] = arr[right];
			 arr[right] = tmp;
			 left++;
			 right--;
		 }
	 }
}   
int main()
 {
	int arr[10] = {0};
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		scanf("%d", &arr[i]);
	}
	move(arr, sz);
	for (i = 0; i < sz; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
}

在这里插入图片描述

题目:https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897?tpId=107&&tqId=33381&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

#include <stdio.h>

int main( )
{
    int n= 0;
    int m =0 ;
    scanf("%d %d",&n,&m);
    int arr1[n];
    int arr2[m];
    int arr3[n+m];
    int i =0 ;
    for (i=0 ; i <n; i++)
    {
   scanf("%d",&arr1[i]);
    }
      for (i=0 ; i <m; i++)
    {
   scanf("%d",&arr2[i]);
    }
   i = 0;
    int j = 0;
    int k = 0;

   while(i <n && j <m )
{
     if( arr1[i]>arr2[j])
    {
         arr3[k]=arr2[j];
        j++;
        k++;
    }
    else 
    {
        arr3[k]=arr1[i];
        i++;
        k++;
    }
}

//把arr2剩下的元素放在arr3中

 if ( i==n)
 {
     while(j<m)
     
     {
         arr3[k]=arr2[j];
     j++;
      k++;
     }
 }
//把arr1剩下的元素放在arr3中
  else
 {   
     while(i<n)
     {
          arr3[k]=arr1[i];
     k++;
     i++;
     }
 }
    for( k = 0 ;k<n+m; k ++)
    {
        printf("%d ",arr3[k]);
    }
    return 0 ;
}

在这里插入图片描述

arr1 中的元素和arr2中的元素进行比较,较小的放进arr3中,注意一个细节 如果arr1提前遍历完,那就把arr2剩下的元素放进arr3中,如果arr2中的元素提前遍历完,就把arr1中剩下的元素放进arr3中


题目:https://www.nowcoder.com/practice/22e87f8a8d764a6582710f38d1b40c6e?tpId=107&&tqId=33377&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

#include<stdio.h>
int main() {
    int n = 0;
    scanf("%d", &n);
    int arr[1000] = { 0 };
    int i = 0;
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);

    }
    int flag1 = 0; //升序
    int flag2 = 0; //降序

    for (i = 1; i < n; i++) 
  {
        if (arr[i - 1] < arr[i])
        {
            flag1 = 1; //升序
        }
        else 
         {
            flag2 = 1; //降序
        }
    }
    if (flag1+flag2 == 2) 
 {
        printf("unsorted\n");
    }
    else
    {
        printf("sorted\n");
    }
    return 0;
}

在这里插入图片描述

我们定义一个变量flag1 表示升序,flag2表示降序。


如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鄃鳕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值