利用循环结构编程序求1+2+3+······+n的和并输出,其中n由键盘输入 #include "stdioh"
void main()
{
int n,s,i;
s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=i;
printf("%d\n",s);
}
编程:请分别用do while、while两种循环结构编程计算: 1!+2!+3!++n! , n的值由键盘输入。
#include<stdioh>
int fun(int a)
{
int i=1,sum=1;
while(i<=a)
{
sum=i;
i++;
}
return sum;
}
main()
{
int n,i=1,sum=0;
printf("请输入n的值:");
scanf("%d",&n);
while(i<=n)
{
sum+=fun(i);
i++;
}
printf("结果是:%d",sum);
}
这是while循环。do while就自己改造了。
C语言:请分别用三种循环结构编程计算: 1!+2!+3!++n! , n的值由键盘输入。
C语言#include<stdioh>
void main()
{
int n=1,i,sum=0,num=1;
do
{
num=1;
for(i=n;i>0;i--)
num=i;
sum=sum+num;
n++;
} while(n<=10);
printf("(1->10)! is %d\n",sum);
}
C++编写#include<iostream>
using namespace std;
void main()
{
int n=1,i,sum=0,num=1;
while(n<=10)
{
num=1;
for(i=n;i>0;i--)
num=i;
sum+=num;
n++;
}
cout<<sum<<endl;
}
vf 编程 利用子程序求1+1/2+1/3+1/n的值,其中n由键盘输入
input "请输入N" to n
s=0
for i=1 to n
s=s+1/n
endfor
求编程,谢谢。 由键盘输入N,编程求M=N! 其中N=123N
程序的实现的是这样的,先设置一个文本框,用于n值的出入。再设置一个命令按钮用于求解。代码如下:
Private Sub Command1_Click()
Dim n As Integer, i As Integer, m As Double
m = 1
n = CInt(Text1Text)
If n <= 0 Then
Text1Text = "0"
Else
For i = 1 To n
m = m i
Next i
Text1Text = m
End If
End Sub
程序又经过本人调试,程序正常。
编程计算s=1234N(N由键盘输入(1-9)(用汇编程序)
汇编和C++不一样的
首先中断读入数字
然后用LOOP循环累乘,输出结果
利用c语言编程:求1!/1+2!/(1+2)+3!/(1+2+3)+……+n!/(1+2+3+……+n)的值,其中n由键盘输入
#include<stdioh>void main(){ int i,n,he=0,ji=1; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { he+=i; ji=i; sum+=(double)ji/he; } printf("%lf\n",sum);}
C语言编程题:S=1!+2!+3!+4!+5!+…+n! n由键盘输入 求循环过程
这是我们以前做过的课后习题 #include<stdioh> void main() { int n,i; float s=0,t=1; scanf("%d",&n); for(i=1;i<=n;i++) { t=i; s+=t; } printf("1+2!+3!+n!=%f\n",s); }
编程求n!,n由键盘输入
这是之前用C 写过的
#include<stdioh>
#include<memoryh>main(){int f[10000],a[10000],i,j,k,t,n;while(scanf("%d",&n)!=EOF){memset(f,0,sizeof(f));f[0]=1;for(i=1;i<n+1;i++){memset(a,0,sizeof(a)); for(t=0;t<10000;t++){ f[t]=i;if(t!=0) f[t]+=a[t-1]; a[t]=f[t]/10;f[t]%=10;}}for(i=9999;i>=0;i--){if(f[i]!=0){k=i;break;}}for(i=k;i>=0;i--){printf("%d",f[i]);}printf("\n");}}
等下补上一个用Java 写的
表示一个数字,使用科学计数法。如500表示IntegerString(5,2)
public class IntegerString { private int number = 0;数字 private int length = 0;10的length次方 / Creates a new instance of IntegerString / public IntegerString(int number,int length) { thisnumber = number; thislength = length; } public int getNumber(){ return thisnumber; } public int getLength(){ return thislength; }}
/
两个数相乘,结果用两个数来表示,一个是高位,一个是低位
/
public class MultiplyResult { private IntegerString high; private IntegerString low; / Creates a new instance of MultiplyResult / public MultiplyResult(IntegerString a,IntegerString b) { int result = agetNumber()bgetNumber(); int length = agetLength()+bgetLength(); if(result>=10){ high = new IntegerString(result/10,length+1); low = new IntegerString(result%10,length); }else{ high = new IntegerString(result,length); low = new IntegerString(0,length-1); } } public String toString(){ 打印方便,以便调试 StringBuffer = new StringBuffer(); append(highgetNumber()); append(lowgetNumber()); for(int i=0;i<lowgetLength();i++) append("0"); return toString(); } public IntegerString getHigh(){ return high; } public IntegerString getLow(){ return low; } }
public class Factorial{
由大到小,由高到低,将一个字符的数表示成科学计数法private IntegerString[] getIntegerString(String str){ IntegerString[] is = new IntegerString[strlength()]; for(int i=0;i<strlength();i++){ char ch = strcharAt(i); int number = CharactergetNumericValue(ch); is[i] = new IntegerString(number,strlength()-1-i); } return is;}
获得数的最高位 private int getMaxLength(IntegerString[] a){ int max = 0; for(int i=0;i<alength;i++){ if(a[i]getLength()>max) max = a[i]getLength(); } return max; }
一个数与单个数字相乘 private IntegerString[] singleMultiply(IntegerString[] old,IntegerString gene){ MultiplyResult[] mr = new MultiplyResult[oldlength]; for(int i=0;i<oldlength;i++){ mr[oldlength-1-i] = new MultiplyResult(old[i],gene); Systemoutprintln(mr[oldlength-1-i]); } mr是从最低位到最高位 javautilArrayList arrays = new javautilArrayList(); int carry = 0; int maxLength = mr[mrlength-1]getHigh()getLength(); 获得最高位的长度 for(int i=0;i<=maxLength;i++){从个位到最高位一次加,如果有进位,那么存放到carry中 int number = carry; for(int j=0;j<mrlength;j++){ if(mr[j]getLow()getLength()==i) { number+=mr[j]getLow()getNumber(); } if(mr[j]getHigh()getLength()==i){ number+=mr[j]getHigh()getNumber(); } } if(number>=10){ 如果有进位,取余数,如果没有,取本身 arraysadd(new IntegerString(number%10,i)); carry=1; }else{ arraysadd(new IntegerString(number,i)); carry=0; } } if(carry==1){ 如果还有进位,那么加入到最高位 arraysadd(new IntegerString(carry,maxLength+1)); } IntegerString[] results = new IntegerString[arrayssize()]; javautilIterator ii = arraysiterator(); int index=0; while(iihasNext()){ results[index++] = (IntegerString)iinext(); } return results; }
private void print(IntegerString[] a){ Systemoutprintln(getNumberic(a)); } 将数字由IntegerString[]数组转换成字符串 private String getNumberic(IntegerString[] a){ StringBuffer = new StringBuffer(); int max = getMaxLength(a); for(int i=0;i<=max;i++){ boolean isFind = false; for(int j=0;j<alength;j++){ if(a[j]getLength()==i){ insert(0,a[j]getNumber()); isFind = true; break; } } if(!isFind){ insert(0,0); } } return toString(); }
两个数相加 private IntegerString[] add(IntegerString[] a,IntegerString[] b){ if(a==null) return b; if(b==null) return a; javautilArrayList arrays = new javautilArrayList(); int aMax = getMaxLength(a); int bMax = getMaxLength(b); int max = aMax>bMaxaMax:bMax; int carry = 0; for(int i=0;i<=max;i++){ for(int j1=0;j1<alength;j1++){ if(a[j1]getLength()==i) carry+=a[j1]getNumber(); } for(int j2=0;j2<blength;j2++){ if(b[j2]getLength()==i) carry+=b[j2]getNumber(); } if(carry>0){ if(carry>=10){ arraysadd(new IntegerString(carry%10,i)); carry=1; if(i==max){ arraysadd(new IntegerString(carry,i+1)); } }else{ arraysadd(new IntegerString(carry,i)); carry=0; } }else{ arraysadd(new IntegerString(0,i)); carry=0; } } IntegerString[] results = new IntegerString[arrayssize()]; javautilIterator ii = arraysiterator(); int index=0; while(iihasNext()){ results[index++] = (IntegerString)iinext(); } return results; }
两个数相乘
private String stringMultiply(String a,String b){ IntegerString[] ais = thisgetIntegerString(a); IntegerString[] bis = thisgetIntegerString(b); IntegerString[] result = null; for(int i=0;i<bislength;i++){ IntegerString[] tmp = thissingleMultiply(ais,bis[i]); result = add(result,tmp); } return thisgetNumberic(result); }
打印N的阶乘
public void printFactorial(int n){
String total = "1"; int n=100; for(int i=1;i<=n;i++){ total = stringMultiply(i+"",total); }
Systemoutprintln(total);
}
}
编程计算1!+3!+5!+…+(2N-1)!的值,其中N值由键盘输入
int fun(int n)
{
int mult = 1;
while(n >= 1)
{
mult = mult n;
n--;
}
return mult;
}
void main()
{
int sum = 0;
int i;
int n;
scanf("%d",&n);
for(i = 1;i <= 2n-1; i = i + 2)
{
sum = sum + fun(n);
}
printf("%d",sum);
}
i=1 to 3
j=1 to i
k=j to 3
最外层是3次循环好理解吧,因为i=1 to 3
中间的是6次,当i=1时,j=1 to 1循环1次,当i=2时j=1 to 2循环2次,当i=3时,j=1 to 3循环3次,1+2+3=6次
内层循环
i=1,j=1 to 1,k=1 to 3循环3次
i=2,j=1 to 2,j=1时,k=1 to 3循环3次
i=2,j=1 to 2,j=2时,k=2 to 3循环2次
i=3,j=1 to 3,j=1时,k=1 to 3循环3次
i=3,j=1 to 3,j=2时,k=2 to 3循环2次
i=3,j=1 to 3,j=3时,k=3 to 3循环1次
一共是3+3+2+3+2+1=14次
2秒的应该要用定时器好一点吧,while(!两秒标志)这样就可以了(两秒定时一到,则置位两秒标志位),如果真的对实时性要求非常高的话,就是说两秒一到,不管程序执行到哪里,都应该结束这个循环,那就要用到任务的调度了,这个比较麻烦,因为会涉及到 *** 作系统了,uC/OS可以实现这个。至于你说的让循环程序执行一次就结束的,既然是只有一次,那就不叫循环了对吧,不要循环,直接顺序执行下来就是一次了嘛
具体程序如下:
#include <reg51h>
#define uchar unsigned char
sbit P20=P2^0;
void delay_ms(unsigned int ms) //1ms延时
{
uchar a;
while(ms--)
for(a=123;a>0;a--);
}
uchar code tab[]={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F};
void main()
{
while(1)
{ uchar b;
P20=0;
P0=tab[b];
delay_ms(1000);//1s延时
b++;
if(b==10)
b=0;
}
}
扩展资料:
数码管原理
数码管常用段数一般为7段有的另加一个小数点,还有一种数码管是类似于3位“+1”型。数码管位数有半位,1,2,3,4,5,6,8,10位等。数码管根据LED的接法不同分为共阴和共阳两类,了解数码管的这些特性,数码管对编程是很重要的。
因为不同类型的数码管,除了数码管的硬件电路有差异外,数码管编程方法也是不同的。数码管的发光原理是一样的,只是数码管的电源极性不同而已。
数码管颜色有红,绿,蓝,黄等几种。数码管广泛用于仪表,时钟,车站,家电等场合。选用数码管时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用数码管内部引脚。
数码管引脚定义每一笔划都是对应数码管一个字母表示数码管DP是小数点。数码管透过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是数码管动态驱动。每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应。
尽管实际上各位数码管并非同时点亮LED数码管,但只要数码管扫描的速度足够快,数码管给人的印象就是一组稳定的显示资料,数码管不会有闪烁感,数码管动态显示的效果和静态显示是一样的,数码管能够节省大量的I/O口,而且数码管功耗更低。
以上就是关于利用循环结构编程序求1+2+3+······+n的和并输出,其中n由键盘输入全部的内容,包括:利用循环结构编程序求1+2+3+······+n的和并输出,其中n由键盘输入、Visual Basic程序设计实验解析志勇P93中三个for循环、C语言中想要一个循环程序在2秒内结束,用哪个函数,怎么用让一个循环程序运行一次就结束,该怎么编程!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)