函數:判斷是否爲素數
bool is_prime(int num)
{
int i;
int s=sqrt(num);
for(i=2;i<=s;i++)
{
if(num%i==0) return false;
}
return true;
}
函數:計算num的因子和
因子概念:假如整數n除以m,結果是無餘數的整數,那麼我們稱m就是n的因子。反過來說,我們稱n爲m的倍數
其中因子和爲包括1但不包括n本身的所有因子之和
int fac_sum(int num)
{
int i,ans=0;
for(i=1;i<num;i++)
{
if(num%i==0) ans+=i;
}
return ans;
}
函數:判斷迴文數的兩種寫法
//將回文數看作整形數據(在這裏010就是10,10不是迴文數)
bool is_palindromic(int num)
{
int ans=0,copy=num;
while(copy)
{
ans*=10;
ans+=copy%10;
copy/=10;
}
return ans==num?true:false;
}
//將回文數看作字符串(這樣的話010也是迴文數)
bool is_palindromic(string s)
{
int l=0,r=s.length()-1;
while(l<=r)
{
if(s[l++]==s[r--]) continue;
else return false;
}
return true;
}
過程設計:數組的去重複制
將含有nx個元素的數組x中的數據複製到數組y中,重複的數據只存儲一次,最後輸出y中的數據。(兩種思路)
//思路一:比較笨的,挨個遍歷查重
int main()
{
int x[50],y[50],ny=0,nx;
bool flag;
cin >> nx;
for(int i=0;i<nx;i++) cin >> x[i];
for(int i=0;i<nx;i++)
{
flag = true;
for(int j=0;j<ny;j++) if(x[i]==y[j]) flag = false;
if(flag) y[ny++]=x[i];
else continue;
}
for(int i=0;i<ny;i++) cout << y[i]<< " ";
return 0;
}
//思路二:用桶來存儲數據的存在性,效率高,但是範圍比較小。
int main()
{
const int MAXSIZE = 300000;
int x[50],y[50],ny=0,nx;
bool flag[MAXSIZE] = {false};
cin >> nx;
for(int i=0;i<nx;i++)
{
cin >> x[i];
flag[x[i]]=true;
}
for(int i=0;i<nx;i++)
{
if(flag[x[i]]==true)
{
y[ny++] = x[i];
flag[x[i]]=false;
}
else continue;
}
for(int i=0;i<ny;i++) cout << y[i] << " ";
return 0;
}
函數:利用二維的指針遍歷二維數組
void fun2(int (*p)[4],int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout << p[i][j] << " ";
}
cout << endl;
}
}
int main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
fun2(a,3,4);
return 0;
}