黑马程序员技术交流社区
标题:
求s=a+aa+aaa+aaaa+aa...的值,其中a是一个数字
[打印本页]
作者:
hi虚无缥缈
时间:
2015-5-23 22:46
标题:
求s=a+aa+aaa+aaaa+aa...的值,其中a是一个数字
求s=a+aa+aaa+aaaa+aa...的值,其中a是一个数字
作者:
尹世伟
时间:
2015-5-23 23:59
标题:
大家交流一下思想
本帖最后由 尹世伟 于 2015-5-24 10:35 编辑
这个好吧 我们交流下我的思
//
// main.c
// 求S(n) = a+aa+aaa+aaaa+...+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+2222+22222(此时n=5),n和a都从键盘输入
//
// Created by pcbeta on 15/5/22.
// Copyright (c) 2015年 ahyin007. All rights reserved.
//
#include <stdio.h>
/**
* 10为底的指数函数
*/int e(int n)
{
int mul = 1;
while (n-- > 0)
{
mul = mul * 10;
}
return mul;
}
int main(int argc, const char * argv[])
{
int n = 0,a = 0,s = 0,num = 0;
printf("请输入位数n和数字a空格隔开:\n");
scanf("%d%d",&n,&a);
//s(n)=a*e0+a*e1+...+a*e(n-1)
for (int i = 1; i <= n; i++)
{
for (int j = 0; j <= i - 1; j++)
{
num = a*e(j);
s = s + num;
}
}
printf("s = %d\n",s);
return 0;
}
复制代码
路
作者:
Rdxer
时间:
2015-5-24 00:11
你要递归实现还是循环实现,
作者:
黑客大王
时间:
2015-5-24 09:50
循环的题目把
作者:
洋柿子
时间:
2015-5-24 10:04
等待大神的代码出现。。
作者:
等风继续吹
时间:
2015-5-24 11:39
int main()
{int n,a,sum,num;sum=num=a;
printf("输入一个数表示\'a\,一个数表示\'n\';");scanf("%d%d",&a,&n);
for (int j=1; j<n; j++) {
a*=10;num+=a;sum+=num;
}
printf("%d",sum);}
作者:
cui0wei0
时间:
2015-5-24 14:00
本帖最后由 cui0wei0 于 2015-5-24 14:05 编辑
int main(int argc, const char * argv[]) {
int a = 5, num = 0, sum = 0;
for (int i = 0; i < 5; i++)
{
num += a;
sum += num;
a *= 10;
}
printf("%d",sum);
}
复制代码
作者:
x331275955
时间:
2015-5-24 17:41
这个我也想了很久,开始还理解错了,后来改的.
#include <stdio.h>
int main(){
//定义变量用来储存用户输入值
int n = -1,a = -1;
//判定输入数字的合法性
while (n < 0|| a < 0)
{
//提示输入正整数
printf("请输入正整数:n(表示位数)和a(表示数字)(用空格断开):\n");
scanf("%d%d",&n,&a);
}
//输出图案
for (int i = 1;i<=n; i++) {
for (int j = 1;j <= i;j++)
{
printf("%d",a);
}
printf("\n");
}
// a*1
// a*1+a*10
// a*1+a*10+a*100
// a*1+a*10+a*100+a*1000
// a*1+a*10+a*100+a*1000+a*10000
//
// n*a+(n-->0递减)*a*(0-->n递增)*10
//定义变量用来保存结果和过程借用值
int sum = 0;
int x = n;
//声明10的n次方函数
int tenNSquare ();
for (int l = 0; l <= n; l++)
{
sum = sum + x * a * (tenNSquare(l));
x = x - 1;
}
//输出值
printf("结果是:%d.\n",sum);
return 0;
}
//编写函数,10的N次方
int tenNSquare(int num1)
{
int jieguo = 1;
for (int n = 1; n <= num1; n++)
{
jieguo = jieguo * 10;
}
return jieguo;
}
复制代码
作者:
jingkai
时间:
2015-5-24 21:23
看着就牙疼的题目
作者:
追随自然
时间:
2015-5-24 22:30
学这,公司会用么
作者:
蜡笔小炎
时间:
2015-5-25 03:20
我是这样实现的
#include <stdio.h>
int main(int argc, const char * argv[])
{
int userNeedNum = 0,count = 0;
printf("请问你想要每位一样的数字是:\n");
scanf("%d",&userNeedNum);
printf("请问你想要多少个数字:\n");
scanf("%d",&count);
for (int i = 1; i <= count; i++)
{
for (int j = i; j >= 1; j--) printf("%d",userNeedNum);
if (i != count) printf("*");
}
return 0;
}
复制代码
作者:
yuang4074
时间:
2015-5-25 19:30
//2+22+222+2222+22222=?(仅提供思路,考虑不周欢迎拍砖)
#include<stdio.h>
#define max 1000
int ar[max]={0};//按10进制位顺序存储结果
int moreThanTen(int x,int n)
{
int j=0,m=0;
if(x>9)
{
for(j=1;j<10;j++)
{
m=x-10*j;
if(m<10)
{
x=m;
ar[n]=x;
return j;
}
}
}
else{
ar[n]=x;
return 0;
}
return 0;
}
void printTitle(int n,int a)
{
int j,m;
for(j=1;j<=n;j++)
{
for(m=1;m<=j;m++)
printf("%d",a);
if(j<n)
printf("+");
else
printf("=");
}
}
int main(){
int n=0,i=0,a=0,x=0,y=0;
printf("请输入位数(n<1000)和数字(a<10)并用逗号隔开,如(5,2):\n");
while(a<10)
{
scanf("%d,%d",&n,&a);
if(a>9) break;
printTitle(n,a);//打印题目
for (i=n;i>=1;i--)
{
x=a*i+y;//竖式计算
y=moreThanTen(x,i);//处理遇10进1,同时按10进制位顺序存储结果
}
for (i=1;i<=n;i++)
{
printf("%d",ar[i]);//打印正向结果
if(i==n)
printf("\n继续测试,输入(5,11)退出\n",ar[i]);
}
}
return 0;
}
作者:
XiaoBaoMi
时间:
2015-5-25 23:34
思路是 看到很有规律,可以选择for 循环。比如a = 4,则 s = 4 + 44 + 444 + 4444规律在于44 = 4*10 +4;444 = 44*10+4;4444 = 444*10 + 4 4次循环,设定好变量,就可以实现了。
作者:
XiaoBaoMi
时间:
2015-5-25 23:45
#include <stdio.h>
int main() {
printf("请输入一个正整数!\n");
int a = 0;
scanf("%d",&a);
int temp = a, result = 0;
for (int i = 1; i < a; i++) {
temp = temp * 10 + a;
result = result + temp;
}
result += a;
printf("%d",result);
return 0;
}
作者:
Jeason_1007
时间:
2015-5-28 01:12
x331275955 发表于 2015-5-24 17:41
这个我也想了很久,开始还理解错了,后来改的.
妹子不好这么做
作者:
huanleabcd
时间:
2015-5-31 07:39
复制下来,运行试试。。。。不过单看题目这道题没终点啊
作者:
追随自然
时间:
2015-5-31 09:13
这么多答案!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2