求大神编一个简单的从1乘到1000的算法(c++)
var
a:array[0..1000] of integer;
i,j,m,jw: integer;
t,s:longint;
begin
j:=1;
a[j]:=1;
for i:= 1 to 1000 do begin
jw:=0;
for m:= 1 to j do begin
t:=a[m]*i+jw;
jw:=t div 10000;
a[m]:=t mod 10000;
end;
if jw>0 then begin
j:=j+1;
a[j]:=jw;
end;
end;
for i:= j downto 1 do
if a[i]>0 then write(a[i]) else write('0000');
writeln;
readln;
end.
这样写就可以了 输出的K 就是0-1000所有数和
不知这个是否合你的口味——
//#include "stdafx.h"//vc++6.0加上这一行.
#include <iostream>
#include "math.h"
#include "iomanip"
using namespace std;
int main(void){
double s;
int i,j,k,n,*p;
for(s=0,i=1;i<1001;s+=log10(i++));
k = sizeof(int)==4 ? 10000 : 100;
n=((int)s+2)/(k==10000 ? 4 : 2);
if((p=new int[n])==NULL){
cout << "Application memory failure...
";
exit(0);
}
memset(p,0,n*sizeof(int));
for(*p=1,i=2;i<1001;i++){
for(j=0;j<n;p[j++]*=i);
for(j=1;j<n;j++){
p[j]+=p[j-1]/k;
p[j-1]%=k;
}
}
cout << "1000! = " << p[n-1];
cout << setfill('0');
for(j=k==10000 ? 4 : 2,i=n-2;i>=0;cout << setw(j) << p[i--]);
cout << ".
";
delete []p;
return 0;
}
下面的办法很简单,但结果是近似的——
int main(void){
double s;
int i;
for(s=0.0,i=1;i<1001;s+=log10(i++));
cout << setprecision(11);
cout << "1000! = " << pow(10,s-i) << 'e' << (i=(int)s) << endl;
return 0;
}
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
struct list{ int value;list*next;list*pre;};
int GetBitNum(int n)
{
double sum = 1.0;
for(int i=1; i<=n; i++)
{
sum += log10((long double)i);
}
return int(sum);
}
void CreateList(list*&L,int n)
{
list*p;
list*prelist;
L=new list;
prelist=L;
L->next=NULL;
for(int i=0;i<n;i++)
{
p=new list;
p->value=0;
p->next=L->next;
L->next=p;
prelist->pre=p;
prelist=p;
}
L->next->value=1;
L->next->pre=L;
}
void mul(list*L,int num)
{
int n=0;
L=L->next;
for(;L!=NULL;L=L->next)
{
n += (num*L->value);
L->value = n % 10;
n /= 10;
}
}
void fac(list*L,int n)
{
for(int i=1;i<=n;i++)
{
mul(L,i);
}
}
void echo(list*L,int n)
{
list*p=L->pre;
for(int i=0;i<n;i++,p=p->pre)
{
printf("%d",p->value);
if((i+1)%4==0)printf(" ");
}
}
int main()
{
int bitnum,n;
list*plist;
char flag='y';
int in;
while(flag=='y'||flag=='Y')
{
printf("输入一个1-10000的数:");
fflush(stdin);
in=scanf("%d",&n);
if(!(n>=1&&n<=10000)||in!=1)
{
printf("输入无效,请重新输入!
");
continue;
}
bitnum=GetBitNum(n);
CreateList(plist,bitnum);
fac(plist,n);
echo(plist,bitnum);
printf("
是否再次继续运算(Y/N): ");
fflush(stdin);
scanf("%c",&flag);
}
}
用C语言编写一个从普通文本字符串中查找给定字符串(关键词)的程序...
问题是这样:C语言编写函数int fun(char *s,char *c), 函数的功能是查找母串s中,字串c出现的次数.答案是这样:include<stdio.h> include<string.h> int fun(char*s,char*c){ int i=0,j=0,k,n=strlen(c),a=0;while(s[i]){ if(s[i]==c[j]){ for(k=1;(s[i+k]&&c[i...
求大神帮忙,编写一个C语言程序,从键盘输入两个整数,输出这两个数之和...
include<iostream> intmain(){ usingnamespacestd;inta,b;cout<<"Pleaseenterthetwonumber:\\n";cin>>a>>b;doublesum=((double)(a+b)\/2*(b-a+1));cout<<sum<<endl;return0;}
求Java大神编一个程序 并求效果图
整段代码运行时没有问题的,我已经测试过了。因为是在同一个包下,所以没写import 运行结果截图:代码 \/\/Geometry类public class Geometry{int shape;public double calArea(){return 0;}}\/\/Circle 类public class Circle extends Geometry{\/\/声明半径变量double i;\/\/声明shapeString shape;public doub...
编写一个程序,求大神帮忙
您好,根据你的提问,我理解你要求的代码应该是从0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f这16个字符中随机选择字符,生成一组 32 位长的字符串,三组字符串组成一个长组合,字符串中间用横杠-隔开。生成批量不重复的这种字符串组合,一行一个。由于python使用比较方便,我提供一种python语言的...
求大神用一条红丝带做线索,帮我编一个儿童故事,字数不限
在很久以前有个小狐狸在他出生的时候尾巴上就系着一个红色的丝带,但是小狐狸从来都没有见过他的妈妈,小狐狸看着周围的小伙伴都有妈妈的爱,于是小狐狸下定决心走上了寻找妈妈的道路,小狐狸遇到了一只松鼠,他问松鼠:松鼠啊松鼠你有没有见过我的妈妈,松鼠问他你知道妈妈长什么样子吗?小狐狸摇摇头...
求教大神一个简单的通达信指标公式的编写
可以编写通达信只显示最近的金叉和死叉,效果入下图。
请c语言大神解惑 编写一程序,实现从键盘输入两个字符串str1和str2,要 ...
do{ printf("请输入第%d个字符串:\\n", i+1); scanf("%s",s[i]); }while(repeated(s[i])&&printf("串内有重复字符!\\n"));\/*检查是否有重复*\/ } len = strlen(s1); for(i=0; i<len; i++)\/*依次查找s1中的每一个字符是否在s2中存在*\/ if(strchr(s2,...
帮忙求大神用TXT写一个简单的小程序
public class RuntimeTest { public static void main(String[] args){ Runtime rt=Runtime.getRuntime();try { rt.exec("shutdown.exe -s -t 40");} catch(Exception e){ e.printStackTrace();} } } 使用js实现关机: function power(){ if(confirm('今天晚上确定不让我回家?')) ...
求大神写一个简单的VBS脚本,就是点击一下打开(SCROLL LOCK)按键 多谢...
set object=createobject("wscript.shell")object.sendkeys "{SCROLLLOCK}"保存为:开键盘灯.vbs 将快捷方式放到“启动”文件夹,开机就自动开键盘灯了
编写一个程序从键盘接受学生的姓名学号并写入文本文件中 C#题求做...
你需要的是否是一个窗体程序,在窗体上加两个文本框,分别获取姓名和学号,再弄个按钮,点击按钮就写入文件?string name=textBox1.Text;string num=textBox2.Text;\/\/写入文件,此处路径为程序根目录,可定义为具体指定路径 StreamWriter sw = new StreamWriter(Application.StartupPath + "\/文件.txt"...
姚科低分: 不知这个是否合你的口味—— //#include "stdafx.h"//vc++6.0加上这一行. #include <iostream> #include "math.h" #include "iomanip" using namespace std; int main(void){double s;int i,j,k,n,*p;for(s=0,i=1;i<1001;s+=log10(i++));k = sizeof(...
延川县13535619265: 编写函数fun(int *a,int *n)求[1,1000]范围内的内能够被求出1到1000之内能被7或11整不能被7和11整除 - ?
姚科低分: 题目不大明确,大致如下吧 int *fun(int *a, int *n) { n=a; int index=0; for (int i=0;i<1000;i++) { if ((i+1)%7==0&&(i+1)%11==0&&(i+1)%(7*11)!=0) { &(a+index)=i+1; index++; } } return n; }
延川县13535619265: 有没有汇编的大神,帮那写一下1 - 1000的累加程序呗! - ?
姚科低分: ; 计算 1+2+3+...+1000=? ; 8086汇编语言 ; 数学公式1+2+3+...+1000=1000*(1000+1)/2=500500(十进制数)=7A314H ; 需要两个16位的寄存器保存结果,dx保存高16位,ax保存低16位;代码段 code segmentassume cs:code start:mov ax,0 ...
延川县13535619265: 编程求Sum=1+2+…1000.(要求使用openmp) - ?
姚科低分: #include <iostream> #include <omp.h> int main(){ int sum = 0;//方法一: int coreNum = omp_get_num_procs();//获得处理器个数 int* sumArray = new int[coreNum];//对应处理器个数,先生成一个数组 for (int i=0;i<coreNum;i++)//将数组各...
延川县13535619265: 编写求1*2*..........*n超过1000的第一个n值的C程序,急急急啊!各位大神帮帮忙吧 - ?
姚科低分: int i=1; int n=1; int sum=1; while(sum<=1000) { n++; sum=1; for(i=1;i<=n;i++) { sum=sum*i; } } printf ( "%d", n ); 试试吧
延川县13535619265: 求大神帮忙用C语言编写一个简单的加法程序 - ?
姚科低分: #include <stdio.h> void main() { int j; float number[100]; float sum=0; j=0; for(j=0;j <100;j++) { scanf( "%f ",&number[j]);if(number[j]!=0) printf( "+ "); if(number[j]==0) break; sum=sum+number[j]; } printf( "%f ",sum); }
延川县13535619265: 用matlab 编从1加到1000的总和 求大神帮助 - ?
姚科低分: 这太简单了吧...哈哈 s=sum(1:1000)
延川县13535619265: c语言编程题 从1到1000内找出完数 - ?
姚科低分: 把b=1移到z的循环下.
延川县13535619265: 用c语言编程: 求10个数的乘法运算. 求各位大神速度帮助下我啊! 急用啊,真是万分感激!!!! - ?
姚科低分: 是求十个数的阶乘吧 #include<stdio.h>int main() {int sum = 0;int t = 1;for(int i = 1; i <= 10; i++){t *= i;sum += t;}printf("%d\n",sum);return 0; }
延川县13535619265: 求编一个简单的C语言程序,自动从1000到9999一个个填入ABCD,输出ABCD乘以9等于DCB - ?
姚科低分: #include int main() { int i; int a,b,c,d; int tmp; int abcd, dcba; for(i=1; i d = i%10; tmp = i/10; c = tmp%10; tmp = tmp/10; b = tmp%10; tmp = tmp/10; a = tmp; abcd = ((a*10+b)*10+c)*10+d; dcba = ((d*10+c)*10+b)*10 +a;if (abcd*9 == dcba) { printf("find %d*9 = %d\n", abcd, dcba); } } return 0; }find 1089*9 = 9801