神奇數編程
Ⅰ 神經網路編程到底有多神奇
神經網路演算法,通過一次次地訓練來調節神經節點的連接權重,能夠有效地進行模式識別。
比如電腦可以快速分辨出
00000000
和
00000O00
之間內容不同。
但是卻很難認為找茬游戲的兩張圖片是相似圖片。
使用神經網路,可以瞬間識別出兩張圖片的相似程度(需要用其中一張長期訓練)。
總而言之,神經網路演算法給了程序模式識別的能力。
Ⅱ c語言編程 100到2011其中一位含5的數
呵呵,方法有多種,我給一種用函數實現的。
#include <stdio.h>
int IsHas5(int n)
{
do
{
if(n%10 == 5)
{
return 1;
}
n /= 10;
} while(n);
return 0;
}
main()
{
int i;
int num=0;
for(i=100; i < 2011; i++)
{
if(IsHas5(i))
{
printf("%-6d ",i);
num++;
if(num & 10 == 0) // 一行顯示10個
{
printf("\n");
}
}
}
printf("\n共有%d個這樣的數!\n",num);
}
Ⅲ 用C語言編程求100~200之弦數的個數(參考答案77)
程序代碼:
#include<stdio.h>
void main()
{
long a,b,c,n=0;
int arr[201],i;
for (i=100;i<=200;i++) arr[i]=0;
for (a=1;a<=200;a++)
for (b=a+1;b<=200;b++)
for (c=100;c<=200;c++)
{
if (a*a+b*b==c*c)
{
n++;
arr[c]=1;
printf("%ld %ld^2=%ld^2+%ld^2 ",n,c,a,b);
}
}
n=0;
for (i=100;i<=200;i++)
{
if (arr[i])
{
n++;
printf("%d ", i);
}
}
printf(" total %d ",n);
}
執行成功,掃描出了77個玄數,但是剔除重復後只有55個,執行結果如下:
i:ToolsTC2>noname.exe
1 113^2=15^2+112^2
2 145^2=17^2+144^2
3 181^2=19^2+180^2
4 101^2=20^2+99^2
5 122^2=22^2+120^2
6 145^2=24^2+143^2
7 170^2=26^2+168^2
8 123^2=27^2+120^2
9 100^2=28^2+96^2
10 197^2=28^2+195^2
11 130^2=32^2+126^2
12 183^2=33^2+180^2
13 125^2=35^2+120^2
14 111^2=36^2+105^2
15 164^2=36^2+160^2
16 104^2=40^2+96^2
17 150^2=42^2+144^2
18 125^2=44^2+117^2
19 117^2=45^2+108^2
20 102^2=48^2+90^2
21 148^2=48^2+140^2
22 195^2=48^2+189^2
23 175^2=49^2+168^2
24 130^2=50^2+120^2
25 149^2=51^2+140^2
26 173^2=52^2+165^2
27 143^2=55^2+132^2
28 106^2=56^2+90^2
29 119^2=56^2+105^2
30 200^2=56^2+192^2
31 185^2=57^2+176^2
32 100^2=60^2+80^2
33 109^2=60^2+91^2
34 156^2=60^2+144^2
35 185^2=60^2+175^2
36 105^2=63^2+84^2
37 136^2=64^2+120^2
38 169^2=65^2+156^2
39 110^2=66^2+88^2
40 130^2=66^2+112^2
41 115^2=69^2+92^2
42 182^2=70^2+168^2
43 120^2=72^2+96^2
44 153^2=72^2+135^2
45 170^2=72^2+154^2
46 125^2=75^2+100^2
47 195^2=75^2+180^2
48 130^2=78^2+104^2
49 178^2=78^2+160^2
50 116^2=80^2+84^2
51 170^2=80^2+150^2
52 135^2=81^2+108^2
53 140^2=84^2+112^2
54 159^2=84^2+135^2
55 157^2=85^2+132^2
56 145^2=87^2+116^2
57 137^2=88^2+105^2
58 187^2=88^2+165^2
59 150^2=90^2+120^2
60 155^2=93^2+124^2
61 193^2=95^2+168^2
62 146^2=96^2+110^2
63 160^2=96^2+128^2
64 165^2=99^2+132^2
65 195^2=99^2+168^2
66 145^2=100^2+105^2
67 170^2=102^2+136^2
68 185^2=104^2+153^2
69 175^2=105^2+140^2
70 180^2=108^2+144^2
71 185^2=111^2+148^2
72 190^2=114^2+152^2
73 195^2=117^2+156^2
74 169^2=119^2+120^2
75 174^2=120^2+126^2
76 200^2=120^2+160^2
77 194^2=130^2+144^2
100 101 102 104 105 106 109 110 111 113
115 116 117 119 120 122 123 125 130 135
136 137 140 143 145 146 148 149 150 153
155 156 157 159 160 164 165 169 170 173
174 175 178 180 181 182 183 185 187 190
193 194 195 197 200
total 55
Ⅳ 求c語言編程,求任意數各位數之和
注意:最大數據范圍
#include<stdio.h>
int main()
{
unsigned long int a=0;
int tmp=0,tag=0;
scanf("%d",&a);
while(tag==0)
{
tmp+=a%10;
if(a/10==0)
{
tag=1;
}
a=a/10;
}
printf("\n%d\n",tmp);
}
Ⅳ C++編程: 神秘數問題
x=1000*a[0]+100*a[1]+10*a[2]+a[3];錯了,注意數組a是字元類型,而x是整形!在把數組a轉換成整數的時候注意減掉'0'。採納,謝謝!
Ⅵ 完美數 C語言編程
1、因子不包含數本身。所以for循環條件應該是小於2、在判斷每個數前沒有初始化sum。所以在外循環後面加上sum=13、不是每判斷一個數都要換行,而是在有效數的時候才進行。所以移換行語句到判斷語句內 代碼如下,已測試通過:void main()
{
int j,i,sum=1;
for(i=6;i<=1000;i++)
{
for(j=2;j<i;j++)
if((i%j)==0)
sum+=j; if(i-sum==0)
{
printf("%d its factors are 1",i);
for(j=2;j<i;j++)
if((i%j)==0)
printf(" %d",j); printf("\n");
}
sum=1;
}
getchar();
}。。。望採納
Ⅶ C++編程:High數
以下程序通過測試. #include <iostream> #include <cmath> using namespace std; int fun(int n) { int num=0,t; while(n!=0) { t=n%2; if(t==1) ++num; n/=2; } return num; } int main() { int n,i,j,t,m,num; cin>>n; for(i=0;i<n;++i) { cin>>m; num=0; t=pow(2,m-1); for(j=t;j<=2*t-1;++j) num+=fun(j); cout<<num<<endl; } return 0; }
Ⅷ 循環數(circle)C語言編程
#include<stdio.h>
intIsCircle(intn)//判斷n是不是循環數
{
intcir[6],cirtemp[6];//本題中輸入最大為6位數
inti=0,j,k=0,count=0;
while(n>0)//把n的每一位一次放入數字cirtemp中(反序)
{
count++;//計數
cirtemp[i++]=n%10;
n=n/10;
}
for(i=0;i<count;i++)//把順序還原回來(直接用反序也可以,只是還原回看後面的代碼會好理解些)
cir[i]=cirtemp[count-i-1];
for(i=0;i<count;i++)//是幾位數總共就要循環幾次
{
j=cir[k];//向前右j步
k=(k+j)%count;//走完後的下標
}
if(k==0)//循環完剛好回到第一個數,這個數是循環數
return1;
else
return0;
}
intmain()
{
intn,i=0;
printf("請輸入一個數(9<這個數<999589): ");//按題意這行可以刪去
scanf("%d",&n);
while(1)
{
if(IsCircle(n+i)==1)
{
printf("%d ",n+i);
break;
}
elseif(IsCircle(n-i)==1)
{
printf("%d ",n-i);
break;
}
i++;
}
return0;
}
嚴格來說我這個程序還不嚴謹,IsCircle中判斷k是否遍歷了0,1,2,……count這些自然數來判斷是否是循環數更准確,畢竟可能會有巧合使得循環完後回到了第一個數(下標k=0)但是卻在中途有一個數沒有作為起點和終點(只是覺得有可能,具體是否可能需要證明)。
其實也不難把k的每一個值都加起來如果=1+2+3+……+count,且最後k=0就可以了
還有就是輸入的時候最好判斷一下輸入是否規范 9<數<999589