水仙花数是一个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;
}
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 ;
}
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;
}
#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中
#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表示降序。
如果你觉得这篇文章对你有帮助,不妨动动手指给点赞收藏加转发,给鄃鳕一个大大的关注
你们的每一次支持都将转化为我前进的动力!!!