你是程序员吗》?请过来试试 有趣的C语言题 你们来试试吧。

baizhongri 2003-10-18 07:19:01
这道体是小弟 在一本书里看到的 看题之前先恰一下点看看你用多长时间:
题是这样的:
(例如:S=2+22+222+2222 求S值) 这时最后一位是 4位 也就是说N=4, 但要求N是你输入的值 而2 也需要你输入 设为 A。这道体是利用循环 我相信大家都说 太简单了我希望大家作个测验 然后把你编写的代码放到 我的论坛上 然后解体的时间 放在我这里 谢谢。 要求:用最简短的代码 用最短的时间 让我们看看自己 到底是在什么位置上。。。
...全文
64 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
baizhongri 2003-10-26
  • 打赏
  • 举报
回复
大家都用了 很多方法。有些人 用了C++语言 代码都很长,其中我比较喜欢的程序是hlxyang(何亦杨) 编的程序是这样的 #include "stdio.h"
main()
{ long int s=0,a,b;
int i=0,n;
scanf("%d%d",&a,&n);
b=a;
while(i<=n)
{ s=s+a;
a=a*10+b;
i++;
}
printf("s=%ld",s);}

我相信很多人也想到了这么解了 ,我要说的是 高质量程序 是主要的 ,这些话我没有资格对高手说希望刚刚学习程序的人能够 用最简短的话把这些编出来。。。。祝你们好运。
baizhongri 2003-10-26
  • 打赏
  • 举报
回复
哈哈 谢谢各位 解这道题 虽然题 不是很难 也不是很简单吧(对初学者)。这道题我用了很长时间才解出来 与我的老师比起来 输出的结果都一样 很可惜发现 老师的程序是 很简洁的。我也是出学者 所以不知道什么叫高质量 所以呢 我就输在高质量上 同样的程序 占的体积不一样 。很感叹。。希望大家 都能够编程高质量程序 谢谢。。。
TianGuangZao 2003-10-26
  • 打赏
  • 举报
回复
短并不代表质量高,好的算法只是质量的一个方面标准。
tass 2003-10-21
  • 打赏
  • 举报
回复
up
fifo333 2003-10-18
  • 打赏
  • 举报
回复
/*#define DEBUG*/

#include <stdlib.h>
#include <stdio.h>

int horner(const int N,const int A){
int i,j;
int tmp,sum=0;
for(i=0;i<N;++i){
tmp=1;
for(j=0;j<i;++j){
tmp=tmp*10+1;
}
tmp*=A;
sum+=tmp;
#ifdef DEBUG
printf("%8d\t%8d\n",tmp,sum);
#endif
}
return sum;

}

int main()
{
int result;
int n=4,a=2;
result=horner(n,a);
printf("\nresult: %d\n\n",result);

system("pause");
return 0;

}

应该使用Horner算法,专门计算诸如:
pn(x)=a[n]*x^n+a[n-1]*x^(n-1)...+a[0]*x^0
这种多项式的。

详情见《C++和面向对象数值计算》——杨道奇(一位美籍华人),page 96,3.12节 “多项式求值”。
wshijingke 2003-10-18
  • 打赏
  • 举报
回复
我是初学着啊
能告诉我clrscr是什么意思啊?
还有 cin>>a>>n  cout <<s;  都是什么意思啊?
chaonet 2003-10-18
  • 打赏
  • 举报
回复
up
DESL 2003-10-18
  • 打赏
  • 举报
回复
怎么一道题打算用不同的算法...大家都用不同的算法试试都一样多没劲..我在想想看看有没有别的方法
DESL 2003-10-18
  • 打赏
  • 举报
回复
#include<stdio.h>
void main()
{
int c_a,c_b,c_c=0,c_m;
scanf("%d,%d",&c_a,&c_b);
c_m=c_b;
for(int i=1;i<=c_a;i++)
{
c_c=c_c+c_b;
c_b=c_b*10+c_m;
}
printf("%d",c_c);
}
看结果哩
021850524 2003-10-18
  • 打赏
  • 举报
回复
/*核心的思想是用字符的循环代替数字,然后再相加.并没有楼上的程序好,只是提出了令一思路.*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(void)
{
char ch;
char buffer[20]="\0";
int j=4,i;
unsigned long int result=0;
ch=getchar();getchar();/*输入数字,比如是2*/
fflush(stdin);
scanf("%d",&j);/*输入计数器,比如是4*/
clrscr();
for(;j>0;j--)
{
for(i=0;i<j;i++)
buffer[i]=ch;
result+=atol(buffer);
memset(buffer,0,10);
}
printf("%lu\n",result);
getch();
return 0;
}

danpianji2002 2003-10-18
  • 打赏
  • 举报
回复
大家都有没有看看结果阿
Beover1984 2003-10-18
  • 打赏
  • 举报
回复
学习中
fenghuangling 2003-10-18
  • 打赏
  • 举报
回复
谢谢楼上的提醒,更正:
#include <conio.h>
#include <math.h>
main()
{
long int s,i;
int a,n
clrscr();
printf("n,a=");
scanf("%d,%d",&n,&a);
for (i=2;i<pow(10,n-1);s+=i,i=i*10+a)
printf("s=%ld",s);
}
BBirdlyh 2003-10-18
  • 打赏
  • 举报
回复
楼上各位检查一下输出结果啊
BBirdlyh 2003-10-18
  • 打赏
  • 举报
回复
#include <iostream.h>
int js(int n,int a)
{
if(n==1)
return a;
return (a+js(--n,a)*10);
}
void main()
{
static int a,s=0;
int n,i;
cin>>a>>n;
for(i=n;i>=1;i--)
{
s+=js(i,a);
}
cout <<s;
}
TianGuangZao 2003-10-18
  • 打赏
  • 举报
回复
都是牛人。
我单看题目都花了 5 分钟不止,加上考虑算法,写代码,调试,考虑程序健壮性,没半个小时出不来。
飞行的兔子 2003-10-18
  • 打赏
  • 举报
回复
不好意思也没几时间 几分钟左右吧
飞行的兔子 2003-10-18
  • 打赏
  • 举报
回复
#include"stdio.h"
main()
{
int N,A,S,j=0;
printf("please input N AND A");
scanf("%d %d",&N,&A);
s=N;
while(j<=A)
{
s+=N*10+N;
j++;
}
printf("\n%d",s);
}
hlxyang 2003-10-18
  • 打赏
  • 举报
回复
三分钟吧!
hlxyang 2003-10-18
  • 打赏
  • 举报
回复
#include "stdio.h"
main()
{ long int s=0,a,b;
int i=0,n;
scanf("%d%d",&a,&n);
b=a;
while(i<=n)
{ s=s+a;
a=a*10+b;
i++;
}
printf("s=%ld",s);}
加载更多回复(2)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧