6个回答
展开全部
#include<stdio.h>
void main() { int a,n,s,t,i;
scanf("%d%d",&a,&n); s=0; t=0;
for ( i=0;i<n;i++ ) {
t*=10; t+=a; s-=t;
}
s+=t; s+=t; printf("%d\n",s);
}
首先这是一个累和的题目,完成方法就是循环n次,向求和变量s上边加n项,一般循环变量i
其次,观察每项取值之间的关系,这题是每项都是前一项乘以10再加a得到
这题也没有项顺序关系,每项都是减法,因此可以简化成求累减
每项用一个变量t来算,一开始初值为0,当前项就是t乘以10然后加a,于是第1项为a,第2项为a*10+a=aa,...,循环n次得到最大那个数
具体到程序,为简单起见,求累减,得到的是-aaa...aaa-...-aaa-aa-a,因此加上两次最大值得到aaa...aaa-...-aaa-aa-a的值输出.
这种多项式求和,一般是要分析每项与前项的关系,或者与循环变量取值之间的关系,每项的符号如果需要的话可以单用一个变量来控制,比较关键的是各变量的初值要赋值正确.
void main() { int a,n,s,t,i;
scanf("%d%d",&a,&n); s=0; t=0;
for ( i=0;i<n;i++ ) {
t*=10; t+=a; s-=t;
}
s+=t; s+=t; printf("%d\n",s);
}
首先这是一个累和的题目,完成方法就是循环n次,向求和变量s上边加n项,一般循环变量i
其次,观察每项取值之间的关系,这题是每项都是前一项乘以10再加a得到
这题也没有项顺序关系,每项都是减法,因此可以简化成求累减
每项用一个变量t来算,一开始初值为0,当前项就是t乘以10然后加a,于是第1项为a,第2项为a*10+a=aa,...,循环n次得到最大那个数
具体到程序,为简单起见,求累减,得到的是-aaa...aaa-...-aaa-aa-a,因此加上两次最大值得到aaa...aaa-...-aaa-aa-a的值输出.
这种多项式求和,一般是要分析每项与前项的关系,或者与循环变量取值之间的关系,每项的符号如果需要的话可以单用一个变量来控制,比较关键的是各变量的初值要赋值正确.
展开全部
#include <stdio.h>
int main()
{
static int input_a, input_n, sum[9], \
add_sign, beilu = 1, \
sub_sign , sub_sum ; \
printf("请输入 a: ");
scanf("%d", &input_a);
printf("请输入 n: ");
scanf("%d", &input_n);
if ((input_a < 1 || input_a > 9) || (input_n < 1 || input_n > 9)) return; //输入范围不符合就返回.
sub_sign = input_n; //赋值给减法运算标识,用减法标记的值为最大值的数组指针
while (--input_n >= 0)
{
for (add_sign = 0; add_sign <= input_n; add_sign++)
{
sum[input_n] += input_a * beilu; //存值
beilu = beilu * 10;
}
beilu = 1; //倍数初始化
printf("%d\r\n", sum[input_n]); //打印
}
printf("初始值: %d\r\n", sub_sum);
while (-- sub_sign >= 0) //减法运算
{
sub_sum -= sum[sub_sign - 1];
}
printf("计算得到值为:%d", sub_sum);
}
int main()
{
static int input_a, input_n, sum[9], \
add_sign, beilu = 1, \
sub_sign , sub_sum ; \
printf("请输入 a: ");
scanf("%d", &input_a);
printf("请输入 n: ");
scanf("%d", &input_n);
if ((input_a < 1 || input_a > 9) || (input_n < 1 || input_n > 9)) return; //输入范围不符合就返回.
sub_sign = input_n; //赋值给减法运算标识,用减法标记的值为最大值的数组指针
while (--input_n >= 0)
{
for (add_sign = 0; add_sign <= input_n; add_sign++)
{
sum[input_n] += input_a * beilu; //存值
beilu = beilu * 10;
}
beilu = 1; //倍数初始化
printf("%d\r\n", sum[input_n]); //打印
}
printf("初始值: %d\r\n", sub_sum);
while (-- sub_sign >= 0) //减法运算
{
sub_sum -= sum[sub_sign - 1];
}
printf("计算得到值为:%d", sub_sum);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "stdafx.h"
int main(int argc, char* argv[])
{
int i,j,a,n,res;
long buf[10] = {0};
printf("plese input a n\n");
scanf("%d %d",&a,&n);
for( i = n ; i >= 0 ; i--) //产生数字并存入数组
{
for( j = 0 ; j <= i ; j++)
buf[i] = buf[i]*10 + a;
}
for(i = 0 ; i < n ; i++)
printf("%ld " , buf[i]);
res = buf[n - 1];
for(i = 0 ; i < n - 1 ; i++) //求差
res -= buf[i];
printf("resis %ld " , res);
return 0;
}
#include "stdafx.h"
int main(int argc, char* argv[])
{
int i,j,a,n,res;
long buf[10] = {0};
printf("plese input a n\n");
scanf("%d %d",&a,&n);
for( i = n ; i >= 0 ; i--) //产生数字并存入数组
{
for( j = 0 ; j <= i ; j++)
buf[i] = buf[i]*10 + a;
}
for(i = 0 ; i < n ; i++)
printf("%ld " , buf[i]);
res = buf[n - 1];
for(i = 0 ; i < n - 1 ; i++) //求差
res -= buf[i];
printf("resis %ld " , res);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int a,n;
printf("intput a n\n");
scanf("%d%d",&a,&n);
int b[n],i,r1=0,r2=0;
for(i=0;i<n;i++)
r2=r1=r1*10+a;
for(i=0;i<n;i++)
{
r1=r1/10;
r2=r2-r1;
}
printf("\n%d\n",r2);
}
int main()
{
int a,n;
printf("intput a n\n");
scanf("%d%d",&a,&n);
int b[n],i,r1=0,r2=0;
for(i=0;i<n;i++)
r2=r1=r1*10+a;
for(i=0;i<n;i++)
{
r1=r1/10;
r2=r2-r1;
}
printf("\n%d\n",r2);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询