當前位置:首頁 » 操作系統 » c演算法題

c演算法題

發布時間: 2022-05-01 22:03:19

⑴ 簡單的演算法c語言

這道題是把後一半的數插到前一半數的中間,就是說一個數如果是在前半部分他在第幾位,就有多少個數插到他的前面。例如2一開始在第2位,那麼就要2個數將插到他的前面。那麼他的位置就變成原來的2倍。即代碼中的i*=2。當第一個數經過一輪操作後回到原來的位置,這時所有的數都回到原來的位置了。 後半部分的位置是插到前半部分相同位置的數的前面,就是2*(i-n)-1。

⑵ 收集各類貪心演算法(C語言編程)經典題目

舉個例子,假如你買東西,老闆需要找給你99分錢,他有上面面值分別為25分,10分,5分,1分的硬幣(都是假如,不符合實際),他得找你3個25分,2個10分的,4個1分的才為最佳方案!
用貪心演算法編寫程序實現!
main()
{
int
i,a[5],b[4],c[4];
/*
define
the
type
of
the
money*/
a[1]=25;
a[2]=10;
a[3]=5;
a[4]=1;
printf("please
input
you
money
(fen):\n");
scanf("%d",&b[0]);
for
(i=1;i<=4;i++)
{
b[i]=b[i-1]%a[i];
/*take
n
25
off
and
money
left*/
c[i]=(b[i-1]-b[i])/a[i];
/*
n
*/
printf("%d
is
%d\n",a[i],c[i]);
}
getch();
}

⑶ C語言演算法題

這是一個探索規律題,分析如下:

1級台階只有一種方法;2級台階也只有2種方法;3個台階有3種方法(3=2+1);4個台階有5種方法(5=3+2);5個台階有8種方法(8=5+3);6個台階有12種方法(12=8+4);以此類推:得出一個通式:An=An-2 + An-1

所以代碼很容易出來了:

#include<stdio.h>
#include<stdlib.h>
intmain(void)
{
inti,j,N;
inta[30];
a[0]=1,a[1]=2;
while(1)
{
printf("輸入樓梯台階數: ");
scanf("%d",&N);
if(N>30||N<1)
printf("樓梯台階數輸入錯誤,請重新輸入! ");
else
break;
}

for(i=2;i<N;i++)
a[i]=a[i-1]+a[i-2];
printf("%d級樓梯的走法共有%d種。 ",N,a[N-1]);
system("pause");
return0;
}

⑷ C語言演算法題目求解

首先窮舉每一個起點,對於每一個起點,當後一個元素比前一個元素相差不超過一的時候就不停的後移。退出內循環之後,檢查終點和起點之間的距離,如大於已知的最大長度,就更新最大長度值。整個循環結束後輸出最大長度值就可以了。

下面是程序的源代碼和運行的截圖。

#include<stdio.h>
#include<math.h>
int main()
{ int i,j,maxlen=1,a[5]= {1,2,6,7,7};
for(i=0; i<=5-maxlen; i++)
{ for(j=i+1; abs(a[j]-a[j-1])<=1; j++);
if(j-i>maxlen)maxlen=j-i;
}
printf("%d ",maxlen);
return 0;
}

⑸ c語言演算法題

按你要求空瓶倒

#include<stdio.h>
intmain()
{
intnum[3],numSave,i,j;
printf("請輸入3個數:");
scanf("%d%d%d",&num[0],&num[1],&num[2]);

for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
if(num[i]>num[j])
{
numSave=num[i];
num[i]=num[j];
num[j]=numSave;
}

}
}
printf("從小到大排列:%d%d%d",num[0],num[1],num[2]);
return0;
}

⑹ C語言 演算法題

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<cstring>
using namespace std;
int data[100000];
int dp[100000];
int num;
bool Change(string s)
{

for(int i=0;i<s.size()+1;)
{
if(s[i]<='9'&&s[i]>='0')
{
int t=0;
while(s[i]<='9'&&s[i]>='0')
{
t=t*10+s[i]-'0';
i++;
}
data[num++]=t;
}
else if(s[i]==' '||i==s.size())
{

i++;
continue;
}
else{
return false;
}
}
return true;
}
int main()
{
string s;
while(getline(cin,s))
{
num=0;
bool flag=Change(s);
if(!flag)
{
cout<<"ERROR"<<endl;
continue;
}
/* for(int i=0;i<num;i++)
{
cout<<data[i]<<" ";
}*/
memset(dp,0,sizeof(dp));
int sum=0;
for(int i=0;i<num;i++)
{
sum+=data[i];
}
int half=sum/2;
// cout<<half<<endl;
for(int i=0;i<num;i++)
{
for(int j=half;j>=data[i];j--)
{
dp[j]=max(dp[j],dp[j-data[i]]+data[i]);
}
}
cout<<sum-dp[half]<<" "<<dp[half]<<endl;
}
}

⑺ 求解C語言演算法題

這是個數學分析問題,根x01=[-b+-(b^2-4ac)^0.5]/2a
只有根式不是算術運算,
利用泰勒展開將根式化成算求運算,泰勒誤差項引起的總誤差為題目中的容差,從而得到該求多少項展開。
全部都化成算術運算後,全部先加最後減,即可避免接近float相減。

⑻ 關於演算法編程題(C語言實現)

char *a; //字元串 改為 char a[20];//存放字元串的字元數組
int jie; //方程的解 改為 double jie;
dy = 0; 刪去 dy=0;
兩處的 for(i=1;i<=z;i++) 都改為 for(i = 0; i < z; i++)
if (a[i] == '==' ) 改為 if (a[i] == '=' )
{z=i; 改為 {dy = i;
a=0;b=0; 刪去 a=0;b=0;
fun(a,1,dy,&b,&c); 改為 fun(a, 0, dy - 1, &b, &c);
fun(a,dy,z,&b,&c); 改為 fun(a, dy + 1, z - 1, &b, &c);
jie=(d-b)/(e-c); 改為 jie=((double)(d-b))/(e-c);
printf("%c = %d",zm,jie); 改為 printf("%c = %f",zm,jie);

⑼ c語言演算法問題

#include"stdio.h"
int main()
{
int a,i;
printf("請輸入一個正整數\n");
scanf("%d",&a);
if(a%2==0)
{
printf("偶數:\n");
for(i=0;i<=a/2;i )
printf("]",2*i);
printf("\n");
printf("奇數:\n");
for(i=1;i<a/2;i )
printf("]",2*i-1);
}
else
{
printf("偶數:\n");
for(i=0;i<=(a-1)/2;i )
printf("]",2*i);
printf("\n");
printf("奇數:\n");
for(i=0;i<(a-1)/2;i )
printf("]",2*i 1);
}
return 0;
}

熱點內容
魔獸世界退役伺服器有什麼用處 發布:2024-10-05 20:50:00 瀏覽:194
新車配置不符怎麼投訴 發布:2024-10-05 20:49:00 瀏覽:388
編譯的html文件 發布:2024-10-05 20:48:58 瀏覽:160
python自學網站 發布:2024-10-05 20:46:08 瀏覽:18
存儲在rom中的數據當計算機斷電後 發布:2024-10-05 20:43:46 瀏覽:9
炒股編程代碼 發布:2024-10-05 20:29:10 瀏覽:275
防火門報配置錯誤是什麼原因 發布:2024-10-05 20:20:47 瀏覽:886
移動寬頻設置路由器怎麼設置密碼 發布:2024-10-05 20:03:30 瀏覽:105
微指令的編譯方法有哪一些 發布:2024-10-05 19:02:10 瀏覽:887
android離線定位 發布:2024-10-05 18:36:40 瀏覽:861