C语言百日刷题第九天
创始人
2024-04-09 16:29:55
0

前言

今天是刷题第9天,放弃不难,但坚持一定很酷~
快来跟我一起刷题吧。
加油,一起努力进步
在这里插入图片描述

C语言百日刷题第九天

  • 前言
  • 76.计算偶数的所有质因子
  • 77. 提取不重复的整数
  • 78.二进制中1的个数
  • 79.猴子分桃
  • 80.百钱买百鸡

76.计算偶数的所有质因子

输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:180
输出:2 2 3 3 5
先普及一下什么叫做质因子

在这里插入图片描述

#include 
int main()
{int n;scanf("%d", &n);//最大除数应该是小于等于输入的自然数的平方根for (int i = 2; i <= sqrt(n); i++){while (n % i == 0){printf("%d ", i);n = n / i;}}if (n != 1)printf("%d ", n);return 0;
}

77. 提取不重复的整数

在这里插入图片描述


方法一:除以10求余,得到每一位数字,放入数组之前与数组中已存在的数据对比,不重复的数据才能存入数组

#include
#include
int main()
{int num=0,size=0,flag=1;char str[10000]={0},ch;scanf("%d",&num);for(;num%10 != 0;num=num/10)//外for循环逆序读取每一位数字{flag=1;ch = num%10 + '0';//整型->字符for(int j=0;j<=size;j++)//内for循环将每一位数字和数组中的比较if(str[j]==ch){flag=0;//数字重复标志break;}if(flag){str[size++]=ch;//数组大小size动态增加}}printf("%s",str);return 0;
}

方法二:首先循环提取输入数的最低位,维护一个大小为10的数组,判断数组中是否有提取的这个数位。

  • 如果有则把输入数除等于10,继续提取下一数位。
  • 如果没有仍要把输入数除等于10,并将此数位添加到数组中,结果乘10再加上此数位.
  • 提取到最高位即可输出结果
#include
int main()
{int num = 0,result=0;int arr[10] = {0};scanf("%d",&num);while(num != 0){if(arr[num%10]==0){arr[num%10]=1;result=result*10+(num%10);}num=num / 10;}printf("%d\n",result);
}

78.二进制中1的个数

在这里插入图片描述


方法一:取余求解

#include
int main()
{int input = 0;int count = 0;scanf("%d", &input);while (input){if (input % 2 == 1){count++;}input /= 2;}printf("%d\n", count);return 0;
}

方法二:位运算

#include
int main()
{int input = 0;scanf("%d", &input);int count = 0;while (input){input &= (input - 1); count++;}printf("%d\n", count);return 0;
}

& : 按位与:转化为2进制后相同位置数有0则为0
| : 按位或:转化为2进制后相同位置数有1则为1
^ : 按位异或 :转化为2进制后相同位置相同则为0相异则为1

79.猴子分桃

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子?
分析:猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。这就意味着先将桃子数减去1,然后再拿走五分之一数量的桃子,只剩下五分之四的桃子,并且下一次分桃又重复着这种操作,总共进行了5次。自然而然的想到使用循环解决。

#include
int main ()
{
int monkey = 1;
int peach = 1;
int count = 1;
while (monkey <= 5) 
{if (peach % 5 == 1) {peach = (peach / 5) * 4;monkey++;}else {count++; peach = count; monkey = 1; }
}
printf("桃的最小总数为:%d", count);
}

80.百钱买百鸡

中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?翻译成人话就是:
公鸡5元一只;母鸡3元一只;雏鸡一元3只。百钱买百鸡,问鸡翁、母、雏各几只?
分析:这题共有三个限制条件,3 种鸡的钱数总和为 100。 3 种鸡的数量之和为 100小鸡数必须是 3 的倍数
使用循环,满足三种情况的全部枚举出来就好了。

#include 
int main()
{int a,b,c;for (a=0;a<=20;a++){for(b=0;b<=33;b++){c=(100-5*a-3*b)*3;if(a+b+c==100)printf("公鸡是%d只,母鸡是%d只,雏鸡是%d只.\n",a,b,c);}}
}

相关内容

热门资讯

盘州市南湖社区:打造法律“服务... 近年来,为破解基层法律服务“最后一公里”难题,推进社区矛盾纠纷法治化实质性化解,贵州省盘州市以“精准...
内乡法院:彩礼纠纷引诉讼 法院... 大象新闻记者 魏广宝 通讯员 聂传青 张航/文图 近日, 内乡县人民法院灌涨法庭成功调解一起因婚姻关...
税费服务“主动敲门” 政策红利... “税务部门的主动提醒和精准辅导真是太及时了,不仅帮我们规避了因政策理解偏差可能引发的风险,更让我们实...
民政部:会同有关部门建立最低生... 据新华社,记者12月30日在全国民政工作会议上获悉,民政部将会同有关部门建立最低生活保障标准备案制度...
肯尼亚投资:税务及法律合规指引 一、肯尼亚的外国直接投资 肯尼亚无疑是非洲吸引外国直接投资(FDI)最多的国家之一。根据《2025年...
大同多部门联动打击生态环境违法... 本报讯(通讯员刘美 陈俊宏)近日,大同市中级人民法院联合大同市人民检察院、大同市公安局、大同市司法局...
南阳宛城检察:让道争执酿祸端 ... 大象新闻记者 张定有 通讯员 魏颖 张婷/文图 一桩因乡间小道通行引发的争执,险些酿成极端事件。南阳...
寻找靠谱征地律师,孙侠律师 在征地相关法律事务中,找到一位靠谱且成功率高的征地律师至关重要。随着城市化进程的加速,征地纠纷日益增...
民政部:会同有关部门建立最低生... 记者12月30日在全国民政工作会议上获悉,民政部将会同有关部门建立最低生活保障标准备案制度,从制度上...