n個島編程
A. 帶"n"字並擁有1.7個島嶼是哪個國家
1.7個島嶼還是1.7萬個島嶼啊?1.7萬的話是印度尼西亞(Republik Indonesia)。
B. 編程題,求n個數中的r個組合,其中n,r由鍵盤輸入
#include <stdio.h>
long funp(int x){
if (x<=1) return 1;
return (x-1)*funp(x-1);
}
long func(int n,int r){
return funp(n)/funp(r)/funp(n-r);
}
int main()
{
int n,r;
printf("請輸入n和r的值\n");
scanf("%d%d",&n,&r);
printf("c(%d,%d)=%ld\n",n,r,func(n,r));
}
C. 編程高手進:輸入n個數,求n個數的和,並輸出這n個數
/***********c語言,開發環境是VS2010************
***************如果是VC6.0的環境***************
******請將程序里所有scanf_s替換成scanf*********
*****並且去掉最後一行system("pause");**********/
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
inti,n,a[100],sum=0;
printf("你想輸入幾個數:");
scanf_s("%d",&n);
printf("請輸入這%d個數:",n);
for(i=0;i<n;i++)
{
scanf_s("%d",&a[i]);
sum+=a[i];
}
printf("這%d個數的和為:%d ",n,sum);
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
printf(" ");
system("pause");
}
D. N個島建N-1座橋總建法是N的N-2次方! 哪位幫我證明一下啊
對於一個無向連通圖來說,它可能有很多生成樹,那麼如何求得它的生成樹個數呢?
首先給出一個非常一般的計算方法 -- 矩陣行列式法
對於任何一個頂點數為n的無向連通圖,我們列出一個矩陣.
矩陣的規則是:
1、在主對角線上的元素為此節點的度數
2、對於其他位置上的元素Matrix(i,j) { i != j },
(1) 如果節點i和節點j連通,則Matrix(i,j)的值為-k,其中k值為節點i到節點j的平行邊個數.如果此圖是一個簡單圖,即任意兩點間不存在平行邊,那麼這個值就為-1.
(2) 但如果節點i和節點j根本不連通,則Matrix(i,j)的值為0.
接下來如何求得這個無向連通圖的生成樹個數呢.
直接給出定理:
撤去任意一個節點的信息,求出剩下的(n-1)*(n-1)矩陣的行列式,此值即為這個無向連通圖的生成樹個數.
我就先貼1段吧..
E. 標題:國王的煩惱 C國由n個小島組成,為了方便小島之間聯絡,C國在小島間建立了m座大
根據天數從大到小排序,從大到小開始遍歷,如果某個橋的兩端不是連通的,他們就會抗議。因為天數更小的即使使這兩端連通,因為天數較小,過了幾天後,他們還是不連通。(要注意判斷天數相同的情況)。
例如例題給的案例:
4 4
1 2 2
1 3 2
2 3 1
3 4 3
排序後變成
3,4,3
1,2,2
1,3,2
2,3,1
依次遍歷從第一個開始
因為本身3,4並不連通,所以抗議sum++;
同理1,2也不連通,sum++;
到1,3的時候,1,3也是不連通的,也要抗議,但是因為提議說是抗議幾天,1,2和1,3的橋都是第二天壞,所以他們是同一天抗議,sum不變最後到2,3, 這兩點是連通的,所以sum保持不變,可知return a[x]=find(a[x])。
(5)n個島編程擴展閱讀:
代碼為:
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#define MAX 100000using namespace std;
struct edge{
int a,b;
int w;
};
edge se[MAX];//儲存邊
int set[MAX];//輔助集合
int n, m, sum = 0;
bool cmp(edge e1, edge e2){
return e1.w > e2.w;
}
int find(int x){
return x == set[x]? x : set[x] = find(set[x]);
}
int main(){
scanf("%d %d", &n, &m);
for(int i = 0; i < m; i++){
int a, b, w;
scanf("%d %d %d", &se[i].a, &se[i].b, &se[i].w);
}
for(int i = 1; i <= n; i++){
set[i] = i;
}
sort(se,se+m,cmp);
int day = se[0].w;
for(int i = 0; i < m; day--){
int flag = 0;
while(day == se[i].w){
int a = find(set[se[i].a]);
int b = find(set[se[i].b]);
if(a != b){
flag = 1;
set[a] = b;
}
i++;
}
sum += flag;
}
cout<< sum << endl;
return 0;
}
F. 怎麼取數據島第n個元素的值 代碼如下,我只能去到code列的第一個元素的值
$A(xmldoc.documentElement.getElementsByTagName('code')).each(function(e) {
var test=get_text_value(e.getElementsByTagName('子節點名')[0]);
});
G. C語言求小島面積
#define N 20
void main() {
int n,i,j,k,b,a[N][N],s;
scanf("%d",&n); if ( n>N ) n=N;
for ( i=0;i<n;i++ ) for ( j=0;j<n;j++ ) scanf("%d",&a[i][j]);
for ( i=s=0;i<n;i++ )
for ( j=0;j<n;j++ ) {
b=0; for ( k=0;k<i;k++ ) if ( a[k][j] ) { b=1;break; } if ( !b ) continue;
b=0; for ( k=i+1;k<n;k++ ) if ( a[k][j] ) { b=1;break; } if ( !b ) continue;
b=0; for ( k=0;k<j;k++ ) if ( a[i][k] ) { b=1;break; } if ( !b ) continue;
b=0; for ( k=j+1;k<n;k++ ) if ( a[i][k] ) { b=1;break; } if ( !b ) continue;
s++;
}
printf("%d ",s);
}
H. C語言編程中如何輸入N個整數
循環N次 每次輸入一個就好。
可以隨輸入隨處理,也可以存到數組裡面。
樣例
intN,t;
scanf("%d",&N);
while(N--)
{
scanf("%d",&t);
...
}
I. c語言編程:最大島嶼問題 A國是個島國,由若干個小島組成。A國地圖如下所示:
#include<stdio.h>
charmap[100][100];
intn,m;
inttotal,maxArea,area;
voidGetMap()
{
scanf("%d%d ",&n,&m);
for(inti=0;i<n;++i)
{
for(intj=0;j<m;++j)
{
scanf("%c",&map[i][j]);
}
getchar();
}
}
voidSearch(intx,inty)
{
if(x<0||x>=n||y<0||y>=m||map[x][y]=='.')
{
return;
}
++area;
map[x][y]='.';
Search(x-1,y-1);
Search(x-1,y);
Search(x-1,y+1);
Search(x,y-1);
Search(x,y+1);
Search(x+1,y-1);
Search(x+1,y);
Search(x+1,y+1);
}
voidGetResult()
{
for(inti=0;i<n;++i)
{
for(intj=0;j<m;++j)
{
if(map[i][j]=='I')
{
++total;
area=0;
Search(i,j);
if(maxArea<area)
{
maxArea=area;
}
}
}
}
}
intmain()
{
GetMap();
GetResult();
printf("%d%d ",total,maxArea);
return0;
}
J. 編程編程,定義一個n個整數的數組,然後輸入一個正整數m(m<n)作為要輸入的數
寫一個排序的方法 插入數據以後執行一次排序方法就OK了