C语言-同码小数和

设和式s(d,n)=0.d+0.dd+0.ddd+…+0.dd…d为n项同码d小数之和,其中第k项小数点后有连续k个数字d(d=1,2,…,9)。

例如:s(7,4)=0.7+0.77+0.777+0.7777

还有其他的解法 可自行搜索 这个是我想的一种方法

#include<stdio.h>
void main()
{int  j,d,n;   //n项double t, s;printf("请输入整数d,n:");scanf("%d%d", &d, &n);t = 1; s = 0;for (j = 1; j <=n; j++){t = t/ 10;s = s+(1 - t) / 9 * d;}printf("  s(%d,%d)=%.8f\n", d, n, s);
}

此处《至美——C语言程序设计》一书有,也转载自https://blog.csdn.net/double_main/article/details/53404988?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160353992519725225001167%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160353992519725225001167&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-53404988.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E5%90%8C%E7%A0%81%E5%B0%8F%E6%95%B0&spm=1018.2118.3001.4187

设和式s(d,n)=0.d+0.dd+0.ddd+…+0.dd…d为n项同码d小数之和,其中第k项小数点后有连续k个数字d(d=1,2,…,9)。

例如:s(7,4)=0.7+0.77+0.777+0.7777

1.说明:

输入整数d,n(1<=d<=9,1<n<3000),计算并输出同码小数和s(d,n)(四舍五入精确到小数点后八位);

设置双精度实变量s实施累加求和;

设置i(1~n)循环枚举和式的每一项,设前项小数为t,则当前项显然应为:t=t/10+(double)d/10

2.程序设计:

(1).循环设计求解;


```c#include<stdio.h>>     void main()
>     {
>        int i,d,n;
>        double s,t;
>        printf("请输入两个整数d,n:");
>           scanf("%d,%d",&d,&n);
>        s=t=0;    /*t,s清零*/
>        for(i=1;i<=n;i++)
>        {
>           t=t/10+(double)d/10;    /*t为第i项小数*/
>           s+=t;    /*求和s*/
>        }
>        printf("s(%d,%d)=%.8f\n",d,n,s);    /*按公式输出和s*/
>        getch();
>     }

> 
> (2).省略循环设计求解;
> >     #include<stdio.h>
>     void main()
>     {
>        int d,n;
>        double s;
>        printf("请输入两个整数d,n:");
>           scanf("%d,%d",&d,&n);
>        s=(n-0.111111111)*d/9;    /*因输出精确到小数点后八位,可取至小数点后九位*/
>        printf("s(%d,%d)=%.8f\n",d,n,s);
>        getch();
>     }


(3).拓广到任意指定同码; 例如:s(2016,3)=0.2016+0.20162016+0.201620162016
输入整数d,n(1<=d,n<3000),计算并输出和s(d,n)(四舍五入精确到小数点后八位)。

#include<stdio.h>
void main()
{
int a,b,d,i,n;
double t,s;
printf(“请输入两个整数d,n:”);
scanf("%d,%d",&d,&n);
a=d;
b=1;
while(a>0)
{b*=10;a/=10;} /根据d计算b/
t=s=0;
for(i=1;i<=n;i++)
{
t=t/b+(double)d/b; /强制类型转换/
s+=t;
}
printf(“s(%d,%d)=%.8f\n”,d,n,s);
getch();
}

3.程序运行示例及注意事项;

(1),(2)程序:请输入两个整数d,n:7,2017

                             s(7,2017)=1568.69135802

(3)程序:请输入两个整数d,n:2017,1000

                s(2017,1000)=201.72015184 

注意:事实上,一个简单的案例都可以拓广或引申到较为复杂的案例,而任何复杂的案例都可以追溯到一个简单的案例。

上面并没有实现8位数四舍五入,自己又续了一下。

#include<stdio.h> void main() {    /* s(2016,3) = 0.2016 + 0.20162016 + 0.201620162016输入整数d,n(1 <= d,n < 3000),计算并输出和s(d,n)(四舍五入精确到小数点后八位)。*/int a, b, d, j, n;double t, s, t1;printf("     请输入第一个数作为同码,逗号隔开,然后输入第二个数作为重复次数");scanf_s("%d,%d", &d, &n);a = d; b = 1;   //计数,计算d的位数while (a > 0){b = b * 10;a = a / 10;          //根据d计算b,为递推t做准备}t = s = 0;for (j = 1; j <= n; j++){t = t / b + (double)d / b;         // 0.51+0.5151s += t;                                        //求和s}t1 = 1.0;for (j = 1; j <=8; j++)   //对第8位进行四舍五入  (  啊){ 		t1 = t1 *10;   	} 	s = (longlong)(s * t1 + 0.5) / t1; 	  //此处用int会超出范围出错printf("  s(%d,%d)=%0.8f\n", d, n, s);   } ``````

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12.多媒体和超链接标签及其应用实例

多媒体和超链接标签及其应用实例

POJ-3624 Charm Bracelet dp

题意 N个物品每个就一个给出每个物品的价值和花费&#xff0c;表示最终选择一些物品使得花费不超过M&#xff0c;使得价值最大化 分析 最优化问题 考虑dp n个物品选择一些得到最后的最优化问题 我们不妨考虑&#xff0c;假设我们得到了n-1个物品在容量为m情况下最优化值存…

[Leedcode][JAVA][面试题 16.18][模式匹配][字符串][枚举]

【问题描述】[中等] 你有两个字符串&#xff0c;即pattern和value。 pattern字符串由字母"a"和"b"组成&#xff0c;用于描述字符串中的模式。例如&#xff0c;字符串"catcatgocatgo"匹配模式"aabab"&#xff08;其中"cat"是…

C语言实现小数四舍五入

做日记笔记。 转载自https://blog.csdn.net/weixin_38505045/article/details/79994536 排版有更改 C语言中实现四舍五入: (int)(a0.5)即可。 很巧妙的用了取整规则。 也不用导入math.h 同样注意负数的情况。 把 换成 - 即可。 float f ……; int i (int)(f 0.5); i就是f…

CSS效果

效果属性 box-shadow/text-shadow/border-radius/background/clip-path box-shadow 图形阴影 <style type"text/css">.container{width: 50px;height:50px;background: red;box-shadow: 5px 5px 10px rgba(0,0,0,0.5)} </style> <body><div cla…

POJ-1384 Piggy-Bank 多重背包变形

题意 给我们一个容器的容量m n个物品 每个物品有不同的花费和价值 问我们再每个物品无限个的情况下 最后正好装满最后得到的最小价值是多少 如果装不满 就输出impossible 分析 目标状态&#xff1a;最小价值策略 限制条件&#xff1a;正好装满m的容量 多重背包模型 每个物…

13.表格标签及其应用实例

表格标签及其应用实例

1.6解不等式 1.6.1 平方根不等式

//《至美——C程序设计》 在这个前辈的代码上改了一点 S1赋值&#xff0c; s1 1; //赋值 如果提前未赋值会有警告&#xff0c;所以我就想赋值。然后我是在for循环里写的 while (1){m;s 0;s1 1;for (i m; i < 2 * m; i)s sqrt(i); /*对每一个m计算和s*/这会运行结果…

[剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]

【问题描述】[中等] 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序列 {4,5,3,2,1} 是该压栈序列对应的一个弹…

《七哥说道》第二章:初出茅庐之拜师学艺

【 转载请注明】&#xff1a; 原文出处&#xff1a;https://www.cnblogs.com/jstarseven/p/10499659.html 作者&#xff1a;jstarseven 码字挺辛苦的..... 怀着对第一份工作的遐想&#xff0c;15年6月1号&#xff08;儿童节啊&#xff09;&#xff0c;我开始了我的入职之旅。北…

hihocoder A Game 区间dp

题意 一个数串 A和B每人从这个数串的第一个或者最后一个元素选择一个数加到自己的得分里&#xff0c;A先选&#xff0c;求先手最大得分 样例&#xff1a; 4 -1 0 100 2 输出 99 分析 对于任意一个区间段 我们考虑的问题是相似的 不论任何区间段都是考虑取前面的还是取…

[Leedcode][JAVA][第67题][二进制求和][位运算][字符串]

【问题描述】[简单] 给你两个二进制字符串&#xff0c;返回它们的和&#xff08;用二进制表示&#xff09;。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a "11", b "1" 输出: "100" 示例 2:输入: a "1010", b "1…

解不等式之代数和不等式

代数和概念&#xff1a;数学用语。将数(实数)的加减法算式视为省略加号的几个有理数的和&#xff0c;称这个算式的结果为这几个有理数的代数和。 试解下列关于正整数n的代数和不等式&#xff1a; d < 11/2-1/31/41/5-1/61/n 其中d为从键盘输入的正数&#xff0c;式中代数和…

15.jsp简介

JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发者…

wamp

进入localhost找不到项目文件 转载于:https://www.cnblogs.com/nzc520/p/10501528.html

POJ-1050 To the Max 二维最大子段和

题意 给我们一个二维矩阵 让我们在找出其中的最大子矩阵和 分析 对输入的一个矩阵 我们考虑一维线性矩阵 上的最大子段和 对于一个数串 我们的选择策略是 res max&#xff08;res,max( suma[ i ], a[ i ] )&#xff09;; res就是最后我们得到的最大子段和的结果 a[i]是…

16.jsp结构

JSP 结构 网络服务器需要一个 JSP 引擎&#xff0c;也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。本教程使用内嵌 JSP 容器的 Apache 来支持 JSP 开发。 JSP 容器与 Web 服务器协同合作&#xff0c;为JSP的正常运行提供必要的运行环境和其他服务&#xff…

将一个5X5的矩阵中最大的元素放在中心, 4个角分别放4个最小的元素(顺序为从左到右,从上到下,从小到大存放)其余数字从小到大

将一个5X5的矩阵中最大的元素放在中心&#xff0c; 4个角分别放4个最小的元素&#xff08;顺序为从左到右&#xff0c;从上到下&#xff0c;从小到大存放&#xff09; 其余数字从小到大 在以前的要求上更改了一下&#xff0c;其余数字从小到大排序 #include <stdio.h> #…

[剑指offer][JAVA]面试题第[32-1]题[从上到下打印二叉树][BFS]

【问题描述】[中等] 从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回&#xff1a;[3,9,20,15,7]【解答思路】 BFS 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a…