正序分解整数
程序员文章站
2022-03-22 16:32:02
...
1.前n项求和
f(n)=1+1/2+1/3+1/4+……+1/n
int main()
{
int n;
scanf("%d",&n);
int i;
double sum=0.0;
for(i=1;i<=n;i++){
sum+=1.0/i;
}
printf("f(%d)=%f\n",n,sum);
return 0;
}
2.f(n)=1-1/2+1/3-1/4+……+1/n
int main()
{
int n;
scanf("%d",&n);
int i;
double sum=0.0;
int sign=1;//为了实现加1减1 也可以直接double sign=1.0;,下方就可以直接sum+=sign/i;
for(i=1;i<=n;i++){
sum+=sign*1.0/i;
sign=-sign;
}
printf("f(%d)=%f\n",n,sum);
return 0;
}
3.正序分解整数
输入一个非负整数,正序输出它的每一位数字
输入:13425
输出:1 3 4 2 5
int main()
{
//方案一:先逆序再逆序的方案,只适用于末尾没有0的数字
int x;
scanf("%d",&x);
int t=0;
do{//整数逆序
int d=x%10;
t=t*10+d;
x/=10;
}while(x>0);
printf("x=%d,t=%d\n",x,t);//输出观察逆序是否正确,,此时x值为0,如果不是0的话出不来循环
x=t;//要想让x参与循环的话,把t的值赋给x
do{//逆序输出每一位数字
int d=x%10;
printf("%d",d);
if(x>=10){//解决末尾空格,要在非最后一步输出空格
printf(" ");
}
x/=10;
}while(x>0);
printf("\n");
return 0;
}
int main()
{
//方案二:
//推导x=13425
//13425/10000->1 //
//13425%10000->3425
//10000/10->1000
//3425/1000->3 //
//3425%1000->425
//1000/10->100
//425/100->4 //
//425%100->25
//100/10->10
//25/10->2 //
//25%10->5
//10/10->1
//5/1->5 //
//5%1->0
//0/10->0
int x;
scanf("%d",&x);
//int mask=10000;此句要修改,利用判断数字位数的程序修改,让程序根据输入的x来计算得到这个mask
int mask=1;
int t=x;
while(t>9){
//得出一个数字位数的循环
t/=10;
mask*=10;
}
printf("x=%d,mask=%d\n",x,mask);//此句用来显示,判断cnt是否正确
//int mask=pow(10,cnt-1);//C中的一个函数,可以用10的(cnt-1)次幂算出mask
do{
int d=x/mask;
printf("%d",d);
if(mask>9){
printf(" ");
}
x%=mask;
mask/=10;
//printf("x=%d,mask=%d,d=%d\n",x,mask,d);//这句是为了观察程序
}while(mask>0);
return 0;
}
上一篇: 使用批处理bat更改hosts的多个方法
下一篇: VBS和bat批处理逐行读取文件实例
推荐阅读
-
C# 练习题 将一个正整数分解质因数
-
Python实现将一个正整数分解质因数的方法分析
-
(UVa 136) Ugly Numbers(丑数的生成+整数分解定理+优先队列)
-
面试题热个身:5 亿整数的大文件,来排个序?
-
php foreach正序倒序输出示例代码
-
MapReduce 之流量汇总案例三+将统计结果将统计结果按照总流量正序排序(全排序)
-
Java中冒泡排序的原生实现方法(正序与逆序)
-
CPP--正码,反码,补码~附整数溢出的探讨
-
【LeetCode】2. 两数相加(链表逆序存储——易) & 445. 两数相加 II(链表正序存储——难:栈)
-
输入框input输入限制---验证浮点数、验证正整数(13位)、验证正浮点数(小数点前13位,小数点后2位)