uva-202-Repeating Decimals

本文介绍了一个用于计算分数循环节的C语言程序。该程序能够高效地找出任意两个整数相除产生的循环节,并展示了计算机算法在解决数学问题上的强大能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
#include<stdlib.h>
int main() {
int a, b,i,j,no=0;
while (scanf("%d",&a) != EOF) {
scanf("%d", &b);
//a = a % b;
int len = 0;//循环节长度
int num[3020] = {0};//存小数点后面的数,直接整数除法可得
int rest[3020] = { 0 };//余数,乘10后得到下一次的被除数
for (i = 0; i < 3020; i++) {
if (i == 0) { num[i] = a / b; rest[i] = a - (a / b)*b; }
else {
num[i] = (rest[i - 1] * 10) / b;
rest[i] = rest[i - 1] * 10 - num[i] * b;
}
}
int sg = 0;
for (i = 1; i < 3001; i++) {
for (j = i+1; j < 3001; j++) {//i,j分别是循环列起始位置和终结的后一位
if ((rest[i] == rest[j])&&(num[i]==num[j])) { len = j - i; sg = 1; break; }
}
if (sg) break;
}
if (i == 1 && sg == 1) i = 0;

if (no++)printf("\n");
printf("%d/%d = %d.", a, b, num[0]);
int m;
for (m = 1; m <= i-1; m++) printf("%d", num[m]);
printf("(");
if (len <= 50) { 
for (; m <= j-1; m++) 
printf("%d", num[m]); 
printf(")\n"); 
printf("   %d = number of digits in repeating cycle\n", len); 
}
else { 
for (int n = 1; n <= 50; n++) 
printf("%d", num[n]); 
printf("...)\n"); 
printf("   %d = number of digits in repeating cycle\n",len); 
}


}
//system("pause");
return 0;

}

题目写了有三四个小时,收获很大。真正感受到了计算机运算的快速以及算法就是用程序语言描述解决问题的过程。本题让我意识到了用了很多年的竖式除法真正的作用原理,收获巨大!很开心!

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值