數的計算編程
A. 數的計算(c/c++編程)
#include<stdio.h> int check(int num) { int n=1; int i; if(num==1) { return 1; } for(i=1;i<=num/2;i++) { n =n + check(i); } return n; } void main() { int num,result=0; while(2) { printf("Please Input a natural number less than 1001: "); scanf("%d",&num); result=check(num); printf("%d\n",result); } } //6 : 6 16 26 126 36 136 //7 : 7 17 27 127 37 137 //8 : 8 18 28 128 38 138 48 148 248 1248 //調試通過...答案正確... 只算個數 沒有一一列出... 不懂得話可以問我... 這種演算法對大數來說 效率比較低... 如果有時間可以幫你想好點的演算法...
B. c語言編程 輸入一個整數計算並輸出該數的平方
方法1:
#include<stdio.h>
int square(int m)
{
return m*m;
}
main(void)
{
int a,result;
printf("please input:\n");
scanf("%d",&a);
result=square(a);
printf("%d*%d=%d\n",a,a,result);
}
方法2:
#include<stdio.h>
#include<math.h>
main(void)
{
int a,result;
printf("please input:\n");
scanf("%d",&a);
result=(int)pow(a,2);
printf("%d*%d=%d\n",a,a,result);
}
希望可以幫到你,如果滿意請採納!
C. 求救:編程計算一整數各位數之和.(C語言)
and指的是結果,for循環的意思是每次都測試num除以10是否為零。在C語言中,整除除以整數的結果是截斷的,也就是說只取整數部分。舉個例子5/3=2.666,取整就是2.num%i的意思是取num除以i的余數,也就是num的個位數,num=num/i的意思是把num除以10,相當於去掉num的個位數。例如1234除以10,得123.4,由於結果只取整數部分,所以得123。以此類推就能得到一個數所有位數之和了。
你的程序還有點小問題,就是for循環里的num/i!=0,如果寫成這樣,就會少計算一位,導致結果不正確。
應該改為for(i=10;num!=0;)
D. 如何編程對數值很大、精度很高的數進行計算
我提供一種演算法:
先將數R擴大10的m次方倍,使之恰好為整數,然後參照以下演算法的計算方法(計算5的2003次方)
#include<stdio.h>
#include<string.h>
void main()
{
char ret[2003];
int i, j, temp,
crray = 0;/*進位*/
/*ret初始化*/
memset( ret, '\0', sizeof(char) * 2003 );
/*乘5,做2003次*/
for( i = 1; i <= 2003; i++ )
{
if( i == 1 )
{
/*首次的字元串的賦值*/
ret[0] = '5';
}
else
{
for( j = 0; ; j++ )
{
/*如果有進位,但是該位為空則把該位置成字元0*/
ret[j] = ret[j] == '\0' ? '0' : ret[j];
/*乘5的操作*/
temp = ( ret[j] - '0' ) * 5;
ret[j] = ( ( temp % 10 ) + crray ) + '0';
/*記錄進位*/
crray = temp / 10;
if( ret[j + 1] == '\0' && crray == 0 )
{
break;
}/*end of if*/
}/*end of for*/
}/*end of else*/
}/*end of for*/
/*字元串逆置*/
strrev( ret );
printf( "%s\n", ret );
getch();
}
最後再加小數點,既縮小10的m*n次方倍。
E. C語言編程實現兩個整數的算數運算
#include<iostream.h>
#include<stdio.h>
int main()
{ int a,b;
char ch,pm='Y';
while(pm!='N')
{
cout<<"請輸入第一個數:"<<endl;
cin>>a;
cout<<"請輸入運算符號:"<<endl;
cin>>ch;
cout<<"請輸入第二個數:"<<endl;
cin>>b;
if(ch=='+')
cout<<a+b<<endl;
else if(ch=='-')
cout<<a-b<<endl;
else if(ch=='*')
cout<<a*b<<endl;
else if(ch=='/')
cout<<a/b<<endl;
cout<<"結束輸入N,繼續輸入任意鍵!"<<endl;
pm=getchar();
}
return 1;}
要c++的行嗎?還要換成c嗎?
F. 簡單C語言編程:計算100到1000之間有多少個數,其各位數之和是5
從100到1000之間都是三位數。所以,取通過除法和取余操作,取出個位十位百位上的數值,並加和判斷是否與5相等,即可完成題目中要求的條件。於是流程為:1對100到1000數值進行遍歷。2對每個數進行判斷,如果符合則計數器自加。3輸出結果。代碼如下:#include int main(){ int i,r=0; for(i = 100; i < 1000; i ++) { if(i/100+i%10+i/10%10 == 5) r ++; } printf("%d\n",r);}G. C語言函數編程實現計算10個數的最大值,要求如下:
#include<stdio.h>
#include<conio.h>
voidarray_input(intarray[],intn);
intmax(intarray[],intn);
intmain(void){
intarray[10];
printf("請輸入10個數據:");
array_input(array,10);
printf("10個元素最大值:%d ",max(array,10));
getch();/*屏幕暫留*/
return0;
}
/*輸入數組*/
voidarray_input(intarray[],intn){
inti;
for(i=0;i<n;i++)
scanf("%d",&array[i]);
putchar(' ');
}
/*計算數組最大值*/
intmax(intarray[],intn){
inti;
intmax=array[0];
for(i=0;i<n;i++){
if(array[i]>max)
max=array[i];
}
returnmax;
}

H. 簡單pascal編程 數的計算 楊輝三角形
第一題:
program count;
const
filename='count';
var
n:integer;
total:longint;
s:string;
procere count_number(x:integer;y:string);
var
i:integer;
s1,s2:string;
begin
for i:=1 to x div 2 do
begin
s1:=y;
str(i,s2);
inc(total);
count_number(i,s1);
end;
end;
begin
assign(input,filename+'.in');
assign(output,filename+'.out');
reset(input);
rewrite(output);
readln(n);
str(n,s);
total:=1;
count_number(n,s);
writeln(total);
close(input);
close(output);
end.
就是通過遞歸,不斷構造數串並同時統計個數
第二題:不知道有沒有樣例,你把題目精簡過頭了,看不懂!
I. C語言編程:輸入兩個整數後計算並輸出乘積
/*源程序如下:*/
#include
int
main()
{
int
x,y,z;/*定義三個數,x,y是輸入的兩個整數,z是用來交換的*/
scanf("%d,%d",
&x,&y);/*輸入兩個數中間用逗號分開*/
printf("原來的數x=%d,y=%d\n",x,y);/*輸出原始數*/
z=x;/*實現交換*/
x=y;
y=z;
printf("交換後的數x=%d,y=%d\n",x,y);/*輸出交換後的數*/
return
0;
}
/*vc++6.0測試結果如下:*/
J. 計算組合數 如何編程
如果是指從m個不同元素中取出n(n≤m)個元素的所有組合的個數 的話
#include"stdio.h"
int fac(int n) /*階乘函數*/
{
int s,i;
s=1;
for(i=1;i<=n;i++)
{
s*=i;
}
return(s);
}
main()
{
int n,m,c;
scanf("%d %d",&m,&n);
c=fac(m)/(fac(n)*fac(m-n));
printf("%d\n",c);
}
用的是C語言
